IRecordSequence.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.
Leitet beim Überschreiben in einer abgeleiteten Klasse einen asynchronen Reservierungs- und Anfügevorgang ein.
Überlädt
BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Leitet beim Überschreiben in einer abgeleiteten Klasse einen asynchronen Reservierungs- und Anfügevorgang ein. |
BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Leitet beim Überschreiben in einer abgeleiteten Klasse einen asynchronen Reservierungs- und Anfügevorgang ein. |
BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Leitet beim Überschreiben in einer abgeleiteten Klasse einen asynchronen Reservierungs- und Anfügevorgang ein.
public:
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
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 von Bytearraysegmenten, die verkettet und als Datensatz 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 vorheriger Reihenfolge.
- recordAppendOptions
- RecordAppendOptions
Ein gültiger Wert für RecordAppendOptions, der angibt, wie die Daten geschrieben werden sollten.
- reservationCollection
- ReservationCollection
Die Reservierungsauflistung, in der Reservierungen vorgenommen werden können.
- reservations
- Int64[]
Die vorzunehmenden Reservierungen in Byte.
- callback
- AsyncCallback
Ein optionaler asynchroner Rückruf, der nach Abschluss des Anfügevorgangs aufgerufen wird.
- state
- Object
Ein vom Benutzer bereitgestelltes Objekt, das diese asynchrone Anfügeanforderung von anderen Anforderungen unterscheidet.
Gibt zurück
Ein IAsyncResult, das diesen asynchronen Vorgang darstellt, der möglicherweise noch aussteht.
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 bereitstellen, um den neuen Datensatz zu enthalten oder die Reservierung auszuführen.
Die Methode wurde aufgerufen, nachdem die Sequenz verworfen wurde.
Hinweise
Sie sollten das von der dieser Methode zurückgegebene IAsyncResult an die EndReserveAndAppend-Methode weiterleiten, um sicherzustellen, dass der Anfügevorgang abgeschlossen ist und die Ressourcen korrekt freigegeben werden können. Wenn während eines asynchronen Anfügevorgangs ein Fehler aufgetreten ist, wird erst dann eine Ausnahme ausgelöst, wenn die EndReserveAndAppend-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.
Die angegebenen Reservierungen werden in einer atomaren Operation mit einem Vorgang zum Anfügen von Datensätzen der bereitgestellten Reservierungsauflistung hinzugefügt. Wenn der Anfügevorgang scheitert, wird kein Speicherplatz reserviert.
Normalerweise kann diese Methode abgeschlossen werden, bevor der Datensatz geschrieben wird. Um sicherzustellen, dass ein Datensatz geschrieben wurde, geben Sie entweder das ForceFlush-Flag mithilfe des recordAppendOptions
-Parameters an, oder rufen Sie die Flush-Methode auf.
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 EndReserveAndAppend-Methode Ausnahmen aus.
Gilt für:
BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Leitet beim Überschreiben in einer abgeleiteten Klasse einen asynchronen Reservierungs- und Anfügevorgang ein.
public:
IAsyncResult ^ BeginReserveAndAppend(System::Collections::Generic::IList<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 (System.Collections.Generic.IList<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 : 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)), 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
- IList<ArraySegment<Byte>>
Eine Liste von Bytearraysegmenten, die verkettet und als Datensatz 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 vorheriger Reihenfolge.
- recordAppendOptions
- RecordAppendOptions
Ein gültiger Wert für RecordAppendOptions, der angibt, wie die Daten geschrieben werden sollten.
- reservationCollection
- ReservationCollection
Die Reservierungsauflistung, in der Reservierungen vorgenommen werden können.
- reservations
- Int64[]
Die vorzunehmenden Reservierungen in Byte.
- callback
- AsyncCallback
Ein optionaler asynchroner Rückruf, der nach Abschluss des Anfügevorgangs aufgerufen wird.
- state
- Object
Ein vom Benutzer bereitgestelltes Objekt, das diese asynchrone Anfügeanforderung von anderen Anforderungen unterscheidet.
Gibt zurück
Ein IAsyncResult, das diesen asynchronen Vorgang darstellt, der möglicherweise noch aussteht.
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 bereitstellen, um den neuen Datensatz zu enthalten oder die Reservierung auszuführen.
Die Methode wurde aufgerufen, nachdem die Sequenz verworfen wurde.
Hinweise
Sie sollten das von der dieser Methode zurückgegebene IAsyncResult an die EndReserveAndAppend-Methode weiterleiten, um sicherzustellen, dass der Anfügevorgang abgeschlossen ist und die Ressourcen korrekt freigegeben werden können. Wenn während eines asynchronen Anfügevorgangs ein Fehler aufgetreten ist, wird erst dann eine Ausnahme ausgelöst, wenn die EndReserveAndAppend-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.
Die angegebenen Reservierungen werden in einer atomaren Operation mit einem Vorgang zum Anfügen von Datensätzen der bereitgestellten Reservierungsauflistung hinzugefügt. Wenn der Anfügevorgang scheitert, wird kein Speicherplatz reserviert.
Normalerweise kann diese Methode abgeschlossen werden, bevor der Datensatz geschrieben wird. Um sicherzustellen, dass ein Datensatz geschrieben wurde, geben Sie entweder das ForceFlush-Flag mithilfe des recordAppendOptions
-Parameters an, oder rufen Sie die Flush-Methode auf.
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 EndReserveAndAppend-Methode Ausnahmen aus.