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

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

FileStream.EndRead メソッド

保留中の非同期読み取り完了するまで待機します。

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

Public Overrides Function
 EndRead ( _
    asyncResult As IAsyncResult _
) As Integer
Dim instance As FileStream
Dim asyncResult As IAsyncResult
Dim returnValue As Integer

returnValue = instance.EndRead(asyncResult)
public override int EndRead (
    IAsyncResult asyncResult
)
public:
virtual int EndRead (
    IAsyncResult^ asyncResult
) override
public int EndRead (
    IAsyncResult asyncResult
)
public override function EndRead (
    asyncResult : IAsyncResult
) : int

パラメータ

asyncResult

待機する保留状態の非同期要求への参照

戻り値
ストリームから読み込んだバイト数 (0 ~要求したバイト数の間の数値)。ストリーム末尾では 0 が返されるだけです。それ以外場合は、少なくとも 1 バイト読み込み可能になるまでブロックします

例外例外
例外種類条件

ArgumentNullException

asyncResultnull 参照 (Visual Basic では Nothing) です。

ArgumentException

この IAsyncResult オブジェクトは、このクラスでの BeginRead を呼び出して作成されオブジェクトではありません。

InvalidOperationException

EndRead複数呼び出されました。

解説解説

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

このメソッドは、EndRead をオーバーライドます。

EndRead は、BeginRead からの各 IAsyncResult ごとに 1 回ずつ呼び出すことができますEndRead呼び出すと、ストリームから読み込まれたバイト数が通知されます。EndRead は、I/O 操作完了するまでブロックします

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

使用例使用例

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

Private Shared Sub EndReadCallback(asyncResult
 As IAsyncResult)
     Dim tempState As State = _
         DirectCast(asyncResult.AsyncState, State)
     Dim readCount As Integer
 = _
         tempState.FStream.EndRead(asyncResult)

     Dim i As Integer =
 0
     While(i < readCount)
         If(tempState.ReadArray(i) <> tempState.WriteArray(i))
             Console.WriteLine("Error writing data.")
             tempState.FStream.Close()
             Return
         End If
         i += 1
     End While

     Console.WriteLine("The data was written to {0} and "
 & _
         "verified.", tempState.FStream.Name)
     tempState.FStream.Close()

     ' Signal the main thread that the verification is finished.
     tempState.ManualEvent.Set()
 End Sub
static void EndReadCallback(IAsyncResult asyncResult)
{
    State tempState = (State)asyncResult.AsyncState;
    int readCount = tempState.FStream.EndRead(asyncResult);

    int i = 0;
    while(i < readCount)
    {
        if(tempState.ReadArray[i] != tempState.WriteArray[i++])
        {
            Console.WriteLine("Error writing data.");
            tempState.FStream.Close();
            return;
        }
    }
    Console.WriteLine("The data was written to {0} and verified.",
        tempState.FStream.Name);
    tempState.FStream.Close();

    // Signal the main thread that the verification is finished.
    tempState.ManualEvent.Set();
}
   static void EndReadCallback( IAsyncResult^
 asyncResult )
   {
      State^ tempState = dynamic_cast<State^>(asyncResult->AsyncState);
      int readCount = tempState->FStream->EndRead( asyncResult
 );
      int i = 0;
      while ( i < readCount )
      {
         if ( tempState->ReadArray[ i ] != tempState->WriteArray[
 i++ ] )
         {
            Console::WriteLine( "Error writing data." );
            tempState->FStream->Close();
            return;
         }
      }

      Console::WriteLine( "The data was written to {0} "
      "and verified.", tempState->FStream->Name );
      tempState->FStream->Close();
      
      // Signal the main thread that the verification is finished.
      tempState->ManualEvent->Set();
   }


public:

static void EndReadCallback(IAsyncResult asyncResult)
{
    State tempState = ((State)(asyncResult.get_AsyncState()));
    int readCount = tempState.get_FStream().EndRead(asyncResult);
    int i = 0;
    while((i < readCount)) {
        if ( tempState.get_ReadArray()[i] != 
                tempState.get_WriteArray()[i++] ) {
            Console.WriteLine("Error writing data.");
            tempState.get_FStream().Close();
            return;
        }
    }
    Console.WriteLine("The data was written to {0} and verified.",
        tempState.get_FStream().get_Name());
    tempState.get_FStream().Close();

    // Signal the main thread that the verification is finished.
    tempState.get_ManualEvent().Set();
} //EndReadCallback
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

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

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

   

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



FileStream.EndRead メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2024 GRAS Group, Inc.RSS