Język

IRecordSequence.BeginReserveAndAppend Metoda

Definicja

Po zastąpieniu w klasie pochodnej rozpoczyna się asynchroniczna rezerwa i operacja dołączania.

Przeciążenia

Nazwa Opis
BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

Po zastąpieniu w klasie pochodnej rozpoczyna się asynchroniczna rezerwa i operacja dołączania.

BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

Po zastąpieniu w klasie pochodnej rozpoczyna się asynchroniczna rezerwa i operacja dołączania.

BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

Po zastąpieniu w klasie pochodnej rozpoczyna się asynchroniczna rezerwa i operacja dołączania.

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

Parametry

data
ArraySegment<Byte>

Lista segmentów tablic bajtowych, które będą łączone i dołączane jako rekord.

nextUndoRecord
SequenceNumber

Numer sekwencji następnego rekordu w określonej przez użytkownika kolejności.

previousRecord
SequenceNumber

Numer sekwencji następnego rekordu w poprzedniej kolejności.

recordAppendOptions
RecordAppendOptions

Prawidłowa wartość określa sposób zapisywania RecordAppendOptions danych.

reservationCollection
ReservationCollection

Kolekcja rezerwacji do dokonywania rezerwacji.

reservations
Int64[]

Rezerwacje do wykonania w bajtach.

callback
AsyncCallback

Opcjonalne wywołanie zwrotne asynchroniczne, które ma być wywoływane po zakończeniu dołączania.

state
Object

Obiekt dostarczony przez użytkownika, który odróżnia to konkretne asynchroniczne żądanie dołączania od innych żądań.

Zwraca

Element IAsyncResult reprezentujący tę operację asynchroniczną, która nadal może być oczekująca.

Wyjątki

Co najmniej jeden argument jest nieprawidłowy.

Wystąpił błąd we/wy podczas dołączania rekordu.

Sekwencja rekordów nie może zwolnić wolnego miejsca, aby zawierać nowy rekord lub dokonać rezerwacji.

Metoda została wywołana po usunięciu sekwencji.

Uwagi

Należy przekazać zwróconą IAsyncResult przez tę metodę metodę do EndReserveAndAppend metody, aby upewnić się, że operacja dołączania została ukończona, a zasoby mogą być odpowiednio zwolnione. Jeśli wystąpił błąd podczas dołączania asynchronicznego, wyjątek nie jest zgłaszany, dopóki EndReserveAndAppend metoda nie zostanie wywołana przy IAsyncResult użyciu metody zwróconej przez tę metodę.

Dane zawarte w parametrze data będą łączone w jedną tablicę bajtów do dołączania jako rekordu. Jednak podczas odczytu rekordu nie jest wprowadzana żadna aprowizacja dzielenia danych z powrotem na segmenty tablicy.

Określone rezerwacje są dodawane do podanej kolekcji rezerwacji w operacji niepodzielnej z operacją dołączania rekordu. Jeśli dołączanie nie powiedzie się, żadne miejsce nie jest zarezerwowane.

Zwykle ta metoda może zostać ukończona przed zapisaniem rekordu. Aby upewnić się, że rekord został zapisany, określ flagę ForceFlush przy użyciu parametru recordAppendOptions lub wywołaj metodę Flush .

Jeśli sekwencja rekordów została usunięta lub jeśli przekazano nieprawidłowy argument, wyjątki są zgłaszane natychmiast w ramach tej operacji. Błędy, które wystąpiły podczas asynchronicznego żądania dołączania, na przykład błąd dysku podczas żądania we/wy, spowodują zgłoszenie wyjątków podczas wywoływanej EndReserveAndAppend metody.

Dotyczy

BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

Po zastąpieniu w klasie pochodnej rozpoczyna się asynchroniczna rezerwa i operacja dołączania.

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

Parametry

data
IList<ArraySegment<Byte>>

Lista segmentów tablic bajtowych, które będą łączone i dołączane jako rekord.

nextUndoRecord
SequenceNumber

Numer sekwencji następnego rekordu w określonej przez użytkownika kolejności.

previousRecord
SequenceNumber

Numer sekwencji następnego rekordu w poprzedniej kolejności.

recordAppendOptions
RecordAppendOptions

Prawidłowa wartość określa sposób zapisywania RecordAppendOptions danych.

reservationCollection
ReservationCollection

Kolekcja rezerwacji do dokonywania rezerwacji.

reservations
Int64[]

Rezerwacje do wykonania w bajtach.

callback
AsyncCallback

Opcjonalne wywołanie zwrotne asynchroniczne, które ma być wywoływane po zakończeniu dołączania.

state
Object

Obiekt dostarczony przez użytkownika, który odróżnia to konkretne asynchroniczne żądanie dołączania od innych żądań.

Zwraca

Element IAsyncResult reprezentujący tę operację asynchroniczną, która nadal może być oczekująca.

Wyjątki

Co najmniej jeden argument jest nieprawidłowy.

Wystąpił błąd we/wy podczas dołączania rekordu.

Sekwencja rekordów nie może zwolnić wolnego miejsca, aby zawierać nowy rekord lub dokonać rezerwacji.

Metoda została wywołana po usunięciu sekwencji.

Uwagi

Należy przekazać zwróconą IAsyncResult przez tę metodę metodę do EndReserveAndAppend metody, aby upewnić się, że operacja dołączania została ukończona, a zasoby mogą być odpowiednio zwolnione. Jeśli wystąpił błąd podczas dołączania asynchronicznego, wyjątek nie jest zgłaszany, dopóki EndReserveAndAppend metoda nie zostanie wywołana przy IAsyncResult użyciu metody zwróconej przez tę metodę.

Dane zawarte w parametrze data będą łączone w jedną tablicę bajtów do dołączania jako rekordu. Jednak podczas odczytu rekordu nie jest wprowadzana żadna aprowizacja dzielenia danych z powrotem na segmenty tablicy.

Określone rezerwacje są dodawane do podanej kolekcji rezerwacji w operacji niepodzielnej z operacją dołączania rekordu. Jeśli dołączanie nie powiedzie się, żadne miejsce nie jest zarezerwowane.

Zwykle ta metoda może zostać ukończona przed zapisaniem rekordu. Aby upewnić się, że rekord został zapisany, określ flagę ForceFlush przy użyciu parametru recordAppendOptions lub wywołaj metodę Flush .

Jeśli sekwencja rekordów została usunięta lub jeśli przekazano nieprawidłowy argument, wyjątki są zgłaszane natychmiast w ramach tej operacji. Błędy, które wystąpiły podczas asynchronicznego żądania dołączania, na przykład błąd dysku podczas żądania we/wy, spowodują zgłoszenie wyjątków podczas wywoływanej EndReserveAndAppend metody.

Dotyczy