LogRecordSequence.BeginFlush(SequenceNumber, AsyncCallback, Object) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
使用先前保留在順序中的空間,開始執行非同步的清除作業。 這個方法無法被繼承。
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 方法時擲回例外狀況。