FileStream.EndWrite メソッド
非同期の書き込みを終了し、I/O 操作が完了するまでブロックします。
Overrides Public Sub EndWrite( _
ByVal asyncResult As IAsyncResult _)
[C#]
public override void EndWrite(IAsyncResultasyncResult);
[C++]
public: void EndWrite(IAsyncResult* asyncResult);
[JScript]
public override function EndWrite(
asyncResult : IAsyncResult);
パラメータ
- asyncResult
保留中の非同期 I/O 要求。
例外
例外の種類 | 条件 |
---|---|
ArgumentNullException | asyncResult が null 参照 (Visual Basic では Nothing) です。 |
ArgumentException | この IAsyncResult オブジェクトは、このクラスでの BeginWrite を呼び出して作成されたオブジェクトではありません。 |
InvalidOperationException | EndWrite が複数回呼び出されました。 |
解説
このメソッドは、 EndWrite をオーバーライドします。
EndWrite は、 BeginWrite からの各 IAsyncResult ごとに必ず一度呼び出す必要があります。 EndWrite は I/O 操作が完了するまでブロックします。
その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します。
実行するタスク | 参考例があるトピック |
---|---|
テキスト ファイルを作成する。 | ファイルへのテキストの書き込み |
テキスト ファイルに書き込む。 | ファイルへのテキストの書き込み |
テキスト ファイルから読み取る。 | ファイルからのテキストの読み取り |
テキストをファイルに追加する。 | ログ ファイルのオープンと追加 |
ファイルの名前を変更、またはファイルを移動する。 | File.Move |
ファイルをコピーする。 | File.Copy |
ファイルのサイズを取得する。 | FileInfo.Length |
ファイルの属性を取得する。 | File.GetAttributes |
ファイルの属性を設定する。 | File.SetAttributes |
ファイルが存在するかどうかを判別する。 | File.Exists |
バイナリ ファイルから読み取る。 | 新しく作成したデータ ファイルの読み取りと書き込み |
バイナリ ファイルに書き込む。 | 新しく作成したデータ ファイルの読み取りと書き込み |
ディレクトリを作成する。 | Directory.CreateDirectory |
使用例
[Visual Basic, C#, C++] 次のコード例は System.IO.FileStream.FileStream4 の例の一部です。
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
[C#]
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.
}
[C++]
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,
new AsyncCallback(
0, &FStream::EndReadCallback), tempState);
// Concurrently do other work, such as
// logging the write operation.
}
};
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard
参照
FileStream クラス | FileStream メンバ | System.IO 名前空間 | 入出力操作 | ファイルからのテキストの読み取り | ファイルへのテキストの書き込み | 非同期ファイル I/O