次の方法で共有


LogRecordSequence.BeginFlush(SequenceNumber, AsyncCallback, Object) メソッド

定義

以前にシーケンス内で予約された領域を使用して、非同期のフラッシュ操作を開始します。 このメソッドは継承できません。

public:
 virtual IAsyncResult ^ BeginFlush(System::IO::Log::SequenceNumber sequenceNumber, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginFlush (System.IO.Log.SequenceNumber sequenceNumber, AsyncCallback callback, object state);
abstract member BeginFlush : System.IO.Log.SequenceNumber * AsyncCallback * obj -> IAsyncResult
override this.BeginFlush : System.IO.Log.SequenceNumber * AsyncCallback * obj -> IAsyncResult
Public Function BeginFlush (sequenceNumber As SequenceNumber, callback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

sequenceNumber
SequenceNumber

書き込む必要のある最新レコードのシーケンス番号。 この SequenceNumber が無効な場合、すべてのレコードを書き込む必要があります。

callback
AsyncCallback

フラッシュの完了時に呼び出されるオプションの非同期コールバック。

state
Object

この特定の非同期フラッシュ要求を他の要求と区別するために使用するユーザー指定のオブジェクト。

戻り値

非同期のフラッシュ操作を表す IAsyncResult。まだ保留状態の場合もあります。

実装

例外

このシーケンスの sequenceNumber が有効ではありません。

sequenceNumber が、このシーケンスの基本シーケンス番号と最後のシーケンス番号との間にありません。

予期しない I/O 例外のため、要求は実行されませんでした。

指定されたログにエクステントがありません。 レコード シーケンスを使用する前に、1 つ以上のエクステントを作成する必要があります。

レコード シーケンスが読み取り専用アクセスで開かれているため、操作を実行できません。

シーケンスが破棄された後にメソッドが呼び出されました。

プログラムの実行を継続する十分なメモリがありません。

レコード シーケンスがいっぱいです。

指定のログ シーケンスへのアクセスは、オペレーティング システムにより拒否されました。

注釈

現在のメソッドから返された IAsyncResultEndFlush メソッドに渡すことにより、フラッシュが完了し、リソースが適切に解放されたことを確認する必要があります。 非同期フラッシュ中にエラーが発生した場合、このメソッドから返される EndFlush を使用して IAsyncResult メソッドを呼び出すまで、例外はスローされません。

このメソッドを呼び出すことにより、LogRecordSequence に追加されたすべてのレコードが永続的に書き込まれたことを確認します。

レコード シーケンスが破棄されている場合、または無効な引数を渡した場合、この操作内で例外が直ちにスローされます。 I/O 要求時にディスク障害が発生した場合など、非同期フラッシュ要求中にエラーが発生した場合、EndFlush メソッドが呼び出されたときに例外がスローされます。

適用対象