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 例外狀況,所以無法執行要求。

指定的記錄沒有任何延伸區。 必須先建立一或多個延伸區,才能使用記錄順序。

記錄順序是以唯讀存取所開啟,無法執行作業。

已在處置序列之後呼叫此方法。

沒有足夠的記憶體可以繼續執行程式。

記錄順序已滿。

存取指定的記錄順序遭作業系統拒絕。

備註

您應該將目前方法傳回的 IAsyncResult 傳遞給 EndFlush 方法,以確保清除完成,並適當釋放資源。 如果在非同步清除期間發生錯誤,則必須在使用這個方法傳回的 EndFlush 呼叫 IAsyncResult 方法後才會擲回例外狀況。

呼叫這個方法可以確保已永久寫入附加到 LogRecordSequence 的所有記錄。

如果處置了記錄順序,或是您傳遞了無效的引數,就會立即在此作業中擲回例外狀況。 在非同步清除要求期間發生的錯誤 (例如,在 I/O 要求期間發生的磁碟錯誤),會導致在呼叫 EndFlush 方法時擲回例外狀況。

適用於