Freigeben über


FileRecordSequence.BeginWriteRestartArea Methode

Definition

Startet einen asynchronen Neustartbereichsschreibvorgang.

Überlädt

BeginWriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Startet einen asynchronen Neustartbereich-Schreibvorgang, wobei der zuvor in der Sequenz reservierte Speicherplatz verwendet wird. Diese Methode kann nicht vererbt werden.

BeginWriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Startet einen asynchronen Neustartbereich-Schreibvorgang, wobei der zuvor in der Sequenz reservierte Speicherplatz verwendet wird. Diese Methode kann nicht vererbt werden.

BeginWriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Startet einen asynchronen Neustartbereich-Schreibvorgang, wobei der zuvor in der Sequenz reservierte Speicherplatz verwendet wird. Diese Methode kann nicht vererbt werden.

public:
 virtual IAsyncResult ^ BeginWriteRestartArea(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber newBaseSeqNum, System::IO::Log::ReservationCollection ^ reservation, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginWriteRestartArea (ArraySegment<byte> data, System.IO.Log.SequenceNumber newBaseSeqNum, System.IO.Log.ReservationCollection reservation, AsyncCallback callback, object state);
abstract member BeginWriteRestartArea : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
override this.BeginWriteRestartArea : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
Public Function BeginWriteRestartArea (data As ArraySegment(Of Byte), newBaseSeqNum As SequenceNumber, reservation As ReservationCollection, callback As AsyncCallback, state As Object) As IAsyncResult

Parameter

data
ArraySegment<Byte>

Eine Liste von Bytearraysegmenten, die verkettet und als Datensatz angefügt werden.

newBaseSeqNum
SequenceNumber

Die neue Basissequenznummer. Die angegebene Sequenznummer muss größer oder gleich der aktuellen Basissequenznummer sein.

reservation
ReservationCollection

Eine ReservationCollection, die die Reservierung enthält, die für diesen Neustartbereich verwendet werden sollte.

callback
AsyncCallback

Ein optionaler asynchroner Rückruf, der nach Abschluss des Neustartbereich-Schreibvorgangs aufgerufen wird.

state
Object

Ein vom Benutzer bereitgestelltes Objekt, das diese asynchrone Neustartbereichschreibanforderung von anderen Anforderungen unterscheidet.

Gibt zurück

Ein IAsyncResult, das den asynchronen Neustartbereich-Schreibvorgang darstellt, der möglicherweise noch aussteht.

Implementiert

Ausnahmen

Mindestens ein Argument ist null.

newBaseSeqNum befindet sich nicht zwischen der Basissequenznummer und der letzten Sequenznummer dieser Sequenz.

- oder -

Ein neues oder vorhandenes Archivende oder eine Basis des aktiven Protokolls ist ungültig.

reservations wurde nicht von dieser Datensatzsequenz erstellt.

- oder -

newBaseSeqNum ist für diese Sequenz nicht gültig.

Der Vorgang kann nicht ausgeführt werden, da die Datensatzsequenz mit schreibgeschütztem Zugriff geöffnet wurde.

Die Anforderung kann aufgrund einer unerwarteten E/A-Ausnahme nicht ausgeführt werden.

Die Methode wurde aufgerufen, nachdem die Sequenz verworfen wurde.

Der Arbeitsspeicher reicht nicht aus, um die Ausführung des Programms fortzusetzen.

Die Datensatzsequenz ist voll.

Keine Reservierung, die groß genug für data ist, kann in reservations gefunden werden.

Hinweise

Sie sollten das von der dieser Methode zurückgegebene IAsyncResult an die EndWriteRestartArea-Methode weiterleiten, um sicherzustellen, dass der Neustartbereich-Schreibvorgang abgeschlossen ist und die Ressourcen korrekt freigegeben werden können. Wenn während eines asynchronen Neustartbereich-Schreibvorgangs ein Fehler aufgetreten ist, wird erst dann eine Ausnahme ausgelöst, wenn die EndWriteRestartArea-Methode mit dem von dieser Methode zurückgegebenen IAsyncResult aufgerufen wird.

Die im data-Parameter enthaltenen Daten werden zum Anfügen als Datensatz in einem Array mit einem Byte verkettet. Die Daten können jedoch nicht wieder in Arraysegmente aufgeteilt werden, nachdem der Datensatz gelesen wurde.

Wenn die Operation erfolgreich abgeschlossen wird, wurde die Basissequenznummer aktualisiert. Auf alle Protokolldatensätze mit Sequenznummern, die kleiner als die neue Basissequenznummer sind, kann nicht zugegriffen werden.

Wenn eine ReservationCollection angegeben wird, nimmt der geschriebene Neustartbereich, der zuvor mithilfe einer in der Auflistung enthaltenen Reservierung reserviert wurde, Speicherplatz ein. Wenn diese Methode erfolgreich ist, wird die kleinstmögliche Reservierung verwendet, die die Daten aufnehmen kann. Diese Reservierung wird dann aus der Auflistung entfernt.

Wenn eine Datensatzsequenz verworfen wurde oder wenn Sie ein ungültiges Argument weitergeben, werden unmittelbar während dieses Vorgangs Ausnahmen ausgelöst. Während einer asynchronen Anfügeanforderung auftretende Fehler, z. B. Fehler auf dem Datenträger während der E/A-Anforderung, lösen beim Aufruf der EndWriteRestartArea-Methode Ausnahmen aus.

Gilt für:

BeginWriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Startet einen asynchronen Neustartbereich-Schreibvorgang, wobei der zuvor in der Sequenz reservierte Speicherplatz verwendet wird. Diese Methode kann nicht vererbt werden.

public:
 virtual IAsyncResult ^ BeginWriteRestartArea(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber newBaseSeqNum, System::IO::Log::ReservationCollection ^ reservation, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginWriteRestartArea (System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber newBaseSeqNum, System.IO.Log.ReservationCollection reservation, AsyncCallback callback, object state);
abstract member BeginWriteRestartArea : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
override this.BeginWriteRestartArea : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
Public Function BeginWriteRestartArea (data As IList(Of ArraySegment(Of Byte)), newBaseSeqNum As SequenceNumber, reservation As ReservationCollection, callback As AsyncCallback, state As Object) As IAsyncResult

Parameter

data
IList<ArraySegment<Byte>>

Eine Liste von Bytearraysegmenten, die verkettet und als Datensatz angefügt werden.

newBaseSeqNum
SequenceNumber

Die neue Basissequenznummer. Die angegebene Sequenznummer muss größer oder gleich der aktuellen Basissequenznummer sein.

reservation
ReservationCollection

Eine ReservationCollection, die die Reservierung enthält, die für diesen Neustartbereich verwendet werden sollte.

callback
AsyncCallback

Ein optionaler asynchroner Rückruf, der nach Abschluss des Neustartbereich-Schreibvorgangs aufgerufen wird.

state
Object

Ein vom Benutzer bereitgestelltes Objekt, das diese asynchrone Neustartbereichschreibanforderung von anderen Anforderungen unterscheidet.

Gibt zurück

Ein IAsyncResult, das den asynchronen Neustartbereich-Schreibvorgang darstellt, der möglicherweise noch aussteht.

Implementiert

Ausnahmen

Mindestens ein Argument ist null.

newBaseSeqNum befindet sich nicht zwischen der Basissequenznummer und der letzten Sequenznummer dieser Sequenz.

- oder -

Ein neues oder vorhandenes Archivende oder eine Basis des aktiven Protokolls ist ungültig.

reservations wurde nicht von dieser Datensatzsequenz erstellt.

- oder -

newBaseSeqNum ist für diese Sequenz nicht gültig.

Der Vorgang kann nicht ausgeführt werden, da die Datensatzsequenz mit schreibgeschütztem Zugriff geöffnet wurde.

Die Anforderung kann aufgrund einer unerwarteten E/A-Ausnahme nicht ausgeführt werden.

Die Methode wurde aufgerufen, nachdem die Sequenz verworfen wurde.

Der Arbeitsspeicher reicht nicht aus, um die Ausführung des Programms fortzusetzen.

Die Datensatzsequenz ist voll.

Keine Reservierung, die groß genug für data ist, kann in reservations gefunden werden.

Hinweise

Sie sollten das von der dieser Methode zurückgegebene IAsyncResult an die EndWriteRestartArea-Methode weiterleiten, um sicherzustellen, dass der Neustartbereich-Schreibvorgang abgeschlossen ist und die Ressourcen korrekt freigegeben werden können. Wenn während eines asynchronen Neustartbereich-Schreibvorgangs ein Fehler aufgetreten ist, wird erst dann eine Ausnahme ausgelöst, wenn die EndWriteRestartArea-Methode mit dem von dieser Methode zurückgegebenen IAsyncResult aufgerufen wird.

Die im data-Parameter enthaltenen Daten werden zum Anfügen als Datensatz in einem Array mit einem Byte verkettet. Die Daten können jedoch nicht wieder in Arraysegmente aufgeteilt werden, nachdem der Datensatz gelesen wurde.

Wenn die Operation erfolgreich abgeschlossen wird, wurde die Basissequenznummer aktualisiert. Auf alle Protokolldatensätze mit Sequenznummern, die kleiner als die neue Basissequenznummer sind, kann nicht zugegriffen werden.

Wenn eine ReservationCollection angegeben wird, nimmt der geschriebene Neustartbereich, der zuvor mithilfe einer in der Auflistung enthaltenen Reservierung reserviert wurde, Speicherplatz ein. Wenn diese Methode erfolgreich ist, wird die kleinstmögliche Reservierung verwendet, die die Daten aufnehmen kann. Diese Reservierung wird dann aus der Auflistung entfernt.

Wenn eine Datensatzsequenz verworfen wurde oder wenn Sie ein ungültiges Argument weitergeben, werden unmittelbar während dieses Vorgangs Ausnahmen ausgelöst. Während einer asynchronen Anfügeanforderung auftretende Fehler, z. B. Fehler auf dem Datenträger während der E/A-Anforderung, lösen beim Aufruf der EndWriteRestartArea-Methode Ausnahmen aus.

Gilt für: