LogRecordSequence.BeginReserveAndAppend Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Startet einen asynchronen Reserve- und Anfügevorgang.
Überlädt
| Name | Beschreibung |
|---|---|
| BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Startet einen asynchronen Reserve- und Anfügevorgang. Diese Methode kann nicht geerbt werden. |
| BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Startet einen asynchronen Reserve- und Anfügevorgang. Diese Methode kann nicht geerbt werden. |
BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Startet einen asynchronen Reserve- und Anfügevorgang. Diese Methode kann nicht geerbt werden.
public:
virtual IAsyncResult ^ BeginReserveAndAppend(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservationCollection, cli::array <long> ^ reservations, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReserveAndAppend(ArraySegment<byte> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservationCollection, long[] reservations, AsyncCallback callback, object state);
abstract member BeginReserveAndAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
override this.BeginReserveAndAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
Public Function BeginReserveAndAppend (data As ArraySegment(Of Byte), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservationCollection As ReservationCollection, reservations As Long(), callback As AsyncCallback, state As Object) As IAsyncResult
Parameter
- data
- ArraySegment<Byte>
Eine Liste der Bytearraysegmente, die als Datensatz verkettet und angefügt werden.
- nextUndoRecord
- SequenceNumber
Die Sequenznummer des nächsten Datensatzes in der vom Benutzer angegebenen Reihenfolge.
- previousRecord
- SequenceNumber
Die Sequenznummer des nächsten Datensatzes in der Vorherigen Reihenfolge.
- recordAppendOptions
- RecordAppendOptions
Ein gültiger Wert, der RecordAppendOptions angibt, wie die Daten geschrieben werden sollen.
- reservationCollection
- ReservationCollection
Die Reservierungssammlung, um Reservierungen vorzunehmen.
- reservations
- Int64[]
Die Reservierungen, die in Byte vorgenommen werden sollen.
- callback
- AsyncCallback
Ein optionaler asynchroner Rückruf, der aufgerufen werden soll, wenn das Anfügen abgeschlossen ist.
- state
- Object
Ein vom Benutzer bereitgestelltes Objekt, das diese spezielle asynchrone Anfügeanforderung von anderen Anforderungen unterscheidet.
Gibt zurück
Ein IAsyncResult Wert, der diesen asynchronen Vorgang darstellt, der noch aussteht.
Implementiert
Ausnahmen
userRecord oder previousRecord ist für diese Sequenz nicht gültig.
-oder-
data kann nicht angefügt werden, da sie größer als die maximale Datensatzgröße ist.
-oder-
reservations wurde nicht von dieser Datensatzsequenz erstellt.
Mindestens eines der Argumente ist null.
userRecord oder previousRecord liegt nicht zwischen der Basis- und der letzten Sequenznummer dieser Sequenz.
Die Anforderung konnte aufgrund einer unerwarteten E/A-Ausnahme nicht ausgeführt werden.
-oder-
Die Anforderung konnte aufgrund eines E/A-Gerätefehlers nicht ausgeführt werden.
Der Vorgang kann nicht ausgeführt werden, da die Datensatzsequenz mit schreibgeschütztem Zugriff geöffnet wurde.
Die Methode wurde aufgerufen, nachdem die Sequenz verworfen wurde.
Es ist nicht genügend Arbeitsspeicher vorhanden, um die Ausführung des Programms fortzusetzen.
Die Datensatzsequenz ist voll.
Der Zugriff auf die angegebene Protokollsequenz wird vom Betriebssystem verweigert.
Keine Reservierung groß genug, um zu passen data , finden Sie in reservations.
Hinweise
Sie sollten die IAsyncResult von dieser Methode zurückgegebene Methode an die EndReserveAndAppend Methode übergeben, um sicherzustellen, dass der Anfügevorgang abgeschlossen ist und Ressourcen entsprechend freigegeben werden können. Wenn während eines asynchronen Anfügevorgangs ein Fehler aufgetreten ist, wird eine Ausnahme erst ausgelöst, wenn die EndReserveAndAppend Methode mit der IAsyncResult von dieser Methode zurückgegebenen Methode aufgerufen wird.
Daten, die data im Parameter enthalten sind, werden als Datensatz in ein einzelnes Bytearray verkettet. Beim Lesen des Datensatzes werden jedoch keine Daten wieder in Arraysegmente aufgeteilt.
Die angegebenen Reservierungen werden der bereitgestellten Reservierungsauflistung in einem Atomvorgang mit einem Datensatzanfügevorgang hinzugefügt. Wenn das Anfügen fehlschlägt, ist kein Leerzeichen reserviert.
Normalerweise kann diese Methode abgeschlossen werden, bevor der Datensatz geschrieben wurde. Um sicherzustellen, dass ein Datensatz geschrieben wurde, geben Sie entweder das ForceFlush Flag mit dem recordAppendOptions Parameter an, oder rufen Sie die Flush Methode auf.
Wenn eine Datensatzsequenz verworfen wurde oder Wenn Sie ein ungültiges Argument übergeben, werden Ausnahmen sofort innerhalb dieses Vorgangs ausgelöst. Fehler, die während einer asynchronen Anfügeanforderung aufgetreten sind, z. B. ein Datenträgerfehler während der E/A-Anforderung, führen dazu, dass Ausnahmen ausgelöst werden, wenn die EndReserveAndAppend Methode aufgerufen wird.
Gilt für:
BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Startet einen asynchronen Reserve- und Anfügevorgang. Diese Methode kann nicht geerbt werden.
public:
virtual IAsyncResult ^ BeginReserveAndAppend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber userRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservationCollection, cli::array <long> ^ reservations, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReserveAndAppend(System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber userRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservationCollection, long[] reservations, AsyncCallback callback, object state);
abstract member BeginReserveAndAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
override this.BeginReserveAndAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
Public Function BeginReserveAndAppend (data As IList(Of ArraySegment(Of Byte)), userRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservationCollection As ReservationCollection, reservations As Long(), callback As AsyncCallback, state As Object) As IAsyncResult
Parameter
- data
- IList<ArraySegment<Byte>>
Eine Liste der Bytearraysegmente, die als Datensatz verkettet und angefügt werden.
- userRecord
- SequenceNumber
Die Sequenznummer des nächsten Datensatzes in der vom Benutzer angegebenen Reihenfolge.
- previousRecord
- SequenceNumber
Die Sequenznummer des nächsten Datensatzes in der Vorherigen Reihenfolge.
- recordAppendOptions
- RecordAppendOptions
Ein gültiger Wert, der RecordAppendOptions angibt, wie die Daten geschrieben werden sollen.
- reservationCollection
- ReservationCollection
Die Reservierungssammlung, um Reservierungen vorzunehmen.
- reservations
- Int64[]
Die Reservierungen, die in Byte vorgenommen werden sollen.
- callback
- AsyncCallback
Ein optionaler asynchroner Rückruf, der aufgerufen werden soll, wenn das Anfügen abgeschlossen ist.
- state
- Object
Ein vom Benutzer bereitgestelltes Objekt, das diese spezielle asynchrone Anfügeanforderung von anderen Anforderungen unterscheidet.
Gibt zurück
Ein IAsyncResult Wert, der diesen asynchronen Vorgang darstellt, der noch aussteht.
Implementiert
Ausnahmen
Mindestens eines der Argumente ist ungültig.
Beim Anfügen des Datensatzes ist ein E/A-Fehler aufgetreten.
Die Datensatzsequenz konnte nicht genügend freien Speicherplatz zur Aufnahme des neuen Datensatzes oder zur Reservierung machen.
Die Methode wurde aufgerufen, nachdem die Sequenz verworfen wurde.
Hinweise
Sie sollten die IAsyncResult von dieser Methode zurückgegebene Methode an die EndReserveAndAppend Methode übergeben, um sicherzustellen, dass der Anfügevorgang abgeschlossen ist und Ressourcen entsprechend freigegeben werden können. Wenn während eines asynchronen Anfügevorgangs ein Fehler aufgetreten ist, wird eine Ausnahme erst ausgelöst, wenn die EndReserveAndAppend Methode mit der IAsyncResult von dieser Methode zurückgegebenen Methode aufgerufen wird.
Daten, die data im Parameter enthalten sind, werden als Datensatz in ein einzelnes Bytearray verkettet. Beim Lesen des Datensatzes werden jedoch keine Daten wieder in Arraysegmente aufgeteilt.
Die angegebenen Reservierungen werden der bereitgestellten Reservierungsauflistung in einem Atomvorgang mit einem Datensatzanfügevorgang hinzugefügt. Wenn das Anfügen fehlschlägt, ist kein Leerzeichen reserviert.
Normalerweise kann diese Methode abgeschlossen werden, bevor der Datensatz geschrieben wurde. Um sicherzustellen, dass ein Datensatz geschrieben wurde, geben Sie entweder das ForceFlush Flag mit dem recordAppendOptions Parameter an, oder rufen Sie die Flush Methode auf.
Wenn eine Datensatzsequenz verworfen wurde oder Wenn Sie ein ungültiges Argument übergeben, werden Ausnahmen sofort innerhalb dieses Vorgangs ausgelöst. Fehler, die während einer asynchronen Anfügeanforderung aufgetreten sind, z. B. ein Datenträgerfehler während der E/A-Anforderung, führen dazu, dass Ausnahmen ausgelöst werden, wenn die EndReserveAndAppend Methode aufgerufen wird.