FileStream.BeginRead メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > FileStream.BeginRead メソッドの意味・解説 

FileStream.BeginRead メソッド

非同期の読み取りを開始します。

名前空間: System.IO
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Overrides Function
 BeginRead ( _
    array As Byte(), _
    offset As Integer, _
    numBytes As Integer, _
    userCallback As AsyncCallback, _
    stateObject As Object _
) As IAsyncResult
Dim instance As FileStream
Dim array As Byte()
Dim offset As Integer
Dim numBytes As Integer
Dim userCallback As AsyncCallback
Dim stateObject As Object
Dim returnValue As IAsyncResult

returnValue = instance.BeginRead(array, offset, numBytes, userCallback, stateObject)
public override IAsyncResult BeginRead (
    byte[] array,
    int offset,
    int numBytes,
    AsyncCallback userCallback,
    Object stateObject
)
public:
virtual IAsyncResult^ BeginRead (
    array<unsigned char>^ array, 
    int offset, 
    int numBytes, 
    AsyncCallback^ userCallback, 
    Object^ stateObject
) override
public IAsyncResult BeginRead (
    byte[] array, 
    int offset, 
    int numBytes, 
    AsyncCallback userCallback, 
    Object stateObject
)
public override function BeginRead (
    array : byte[], 
    offset : int, 
    numBytes : int, 
    userCallback : AsyncCallback, 
    stateObject : Object
) : IAsyncResult

パラメータ

array

データを読み取るバッファ。

offset

読み取りの開始位置を示す array 内のバイト オフセット。

numBytes

読み取る最大バイト数。

userCallback

非同期の読み取り操作が完了したときに呼び出されるメソッド。

stateObject

この特定の非同期読み取り要求を他の要求と区別するために使用するユーザー指定のオブジェクト。

戻り値
非同期の読み取りを参照する IAsyncResult。

例外例外
例外の種類条件

ArgumentException

配列長から offset を差し引いた値が numBytes より小さい値です。

ArgumentNullException

array が null 参照 (Visual Basic では Nothing) です。

ArgumentOutOfRangeException

offset または numBytes が負の値です。

IOException

ファイルの末尾を越える位置で、非同期の読み取りを試行しました。

解説解説

EndRead は、BeginRead を呼び出すたびに 1 回ずつ呼び出す必要があります。読み取りプロセスを終了できずに別の読み取りプロセスを開始すると、デッドロックなどの好ましくない動作が発生することがあります。

FileStream には、同期 I/O と非同期 I/O の 2 種類の操作モードがあります。どちらも使用できる場合に、基になるオペレーティング システム リソースはいずれかのモードでのアクセスだけを許可することがあります。既定では、FileStream は同期的にオペレーティング システム ハンドルを開きます。Windows では、これによって非同期メソッドの速度が遅くなります。非同期メソッドを使用する場合は、FileStream(String,FileMode,FileAccess,FileShare,Int32,Boolean) コンストラクタを使用してください。

メモメモ

現在のインスタンスが読み取りをサポートしているかどうかを判断するには、CanRead プロパティを使用します。詳細については、CanRead のトピックを参照してください。

ストリームが閉じている場合、または無効な引数を渡した場合は、BeginRead からすぐに例外がスローされます。I/O 要求中のディスク障害など、非同期読み取りの要求中に発生したエラーは、スレッド プールのスレッドで発生し、EndRead を呼び出したときに可視になります。

EndRead は、読み取られたバイト数を検出するために、この IAsyncResult と共に呼び出す必要があります。

複数の非同期要求を同時に実行した場合、要求の完了順序は不定です。

その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します。

使用例使用例

次のコード例は、FileStream(String,FileMode,FileAccess,FileShare,Int32,Boolean) コンストラクタの例の一部です。

Private Shared Sub EndWriteCallback(asyncResult
 As IAsyncResult)
    Dim tempState As State = _
        DirectCast(asyncResult.AsyncState, State)
    Dim fStream As FileStream = tempState.FStream
    fStream.EndWrite(asyncResult)

    ' Asynchronously read back the written data.
    fStream.Position = 0
    asyncResult = fStream.BeginRead( _ 
        tempState.ReadArray, 0 , tempState.ReadArray.Length, _
        AddressOf EndReadCallback, tempState)

    ' Concurrently do other work, such as 
    ' logging the write operation.
End Sub
static void EndWriteCallback(IAsyncResult asyncResult)
{
    State tempState = (State)asyncResult.AsyncState;
    FileStream fStream = tempState.FStream;
    fStream.EndWrite(asyncResult);

    // Asynchronously read back the written data.
    fStream.Position = 0;
    asyncResult = fStream.BeginRead(
        tempState.ReadArray, 0 , tempState.ReadArray.Length, 
        new AsyncCallback(EndReadCallback), tempState);

    // Concurrently do other work, such as 
    // logging the write operation.
}
   static void EndWriteCallback( IAsyncResult^
 asyncResult )
   {
      State^ tempState = dynamic_cast<State^>(asyncResult->AsyncState);
      FileStream^ fStream = tempState->FStream;
      fStream->EndWrite( asyncResult );
      
      // Asynchronously read back the written data.
      fStream->Position = 0;
      asyncResult = fStream->BeginRead( tempState->ReadArray, 0, tempState->ReadArray->Length,
 gcnew AsyncCallback( &FStream::EndReadCallback ), tempState );
      
      // Concurrently do other work, such as 
      // logging the write operation.
   }

};


static void EndWriteCallback(IAsyncResult asyncResult)
{
    State tempState = ((State)(asyncResult.get_AsyncState()));
    FileStream fStream = tempState.get_FStream();
    fStream.EndWrite(asyncResult);

    // Asynchronously read back the written data.
    fStream.set_Position(0);
    asyncResult = fStream.BeginRead(tempState.get_ReadArray(), 0,
        tempState.get_ReadArray().length , 
        new AsyncCallback(EndReadCallback), tempState);

    // Concurrently do other work, such as 
    // logging the write operation.
} //EndWriteCallback
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「FileStream.BeginRead メソッド」の関連用語

FileStream.BeginRead メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



FileStream.BeginRead メソッドのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS