LogRecordSequence.BeginReserveAndAppend Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Rozpoczyna operację rezerw asynchronicznej i dołączania.
Przeciążenia
BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Rozpoczyna operację rezerw asynchronicznej i dołączania. Tej metody nie można dziedziczyć. |
BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Rozpoczyna operację rezerw asynchronicznej i dołączania. Tej metody nie można dziedziczyć. |
BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Rozpoczyna operację rezerw asynchronicznej i dołączania. Tej metody nie można dziedziczyć.
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
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 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 żądanie asynchronicznego dołączania od innych żądań.
Zwraca
Element IAsyncResult reprezentujący tę operację asynchroniczną, która nadal może być oczekująca.
Implementuje
Wyjątki
userRecord
lub previousRecord
jest nieprawidłowy dla tej sekwencji.
-lub-
data
Nie można dołączyć, ponieważ jest większy niż maksymalny rozmiar rekordu.
-lub-
reservations
nie został utworzony przez tę sekwencję rekordów.
Co najmniej jeden z argumentów to null
.
userRecord
lub previousRecord
nie znajduje się między numerami podstawowymi i ostatnimi sekwencjami tej sekwencji.
Nie można wykonać żądania z powodu nieoczekiwanego wyjątku we/wy.
-lub-
Nie można wykonać żądania z powodu błędu urządzenia we/wy.
Nie można wykonać operacji, ponieważ sekwencja rekordów została otwarta z dostępem tylko do odczytu.
Metoda została wywołana po usunięciu sekwencji.
Za mało pamięci, aby kontynuować wykonywanie programu.
Sekwencja rekordów jest pełna.
Dostęp do określonej sekwencji dzienników jest odrzucany przez system operacyjny.
Nie można znaleźć rezerwacji wystarczająco dużej, aby zmieścić data
się w pliku reservations
.
Uwagi
Należy przekazać zwrócony IAsyncResult przez tę metodę metodę EndReserveAndAppend do 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 użyciu metody zwróconej IAsyncResult przez tę metodę.
Dane zawarte w parametrze data
zostaną łączone w jedną tablicę bajtów na potrzeby dołączania jako rekordu. Jednak podczas odczytywania rekordu nie jest wprowadzana żadna aprowizacja dzielenia danych z powrotem na segmenty tablic.
Określone rezerwacje są dodawane do udostępnionej kolekcji rezerwacji w operacji niepodzielnej z operacją dołączania rekordów. Jeśli dołączanie zakończy się niepowodzeniem, żadne miejsce nie jest zarezerwowane.
Zwykle ta metoda może zakończyć się 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 awaria dysku podczas żądania we/wy, spowodują zgłoszenie wyjątków po EndReserveAndAppend wywołaniu metody.
Dotyczy
BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Rozpoczyna operację rezerw asynchronicznej i dołączania. Tej metody nie można dziedziczyć.
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
Parametry
- data
- IList<ArraySegment<Byte>>
Lista segmentów tablic bajtowych, które będą łączone i dołączane jako rekord.
- userRecord
- 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 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 żądanie asynchronicznego dołączania od innych żądań.
Zwraca
Element IAsyncResult reprezentujący tę operację asynchroniczną, która nadal może być oczekująca.
Implementuje
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ć miejsca, aby zawierać nowy rekord lub dokonać rezerwacji.
Metoda została wywołana po usunięciu sekwencji.
Uwagi
Należy przekazać zwrócony IAsyncResult przez tę metodę metodę EndReserveAndAppend do 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 użyciu metody zwróconej IAsyncResult przez tę metodę.
Dane zawarte w parametrze data
zostaną łączone w jedną tablicę bajtów na potrzeby dołączania jako rekordu. Jednak podczas odczytywania rekordu nie jest wprowadzana żadna aprowizacja dzielenia danych z powrotem na segmenty tablic.
Określone rezerwacje są dodawane do udostępnionej kolekcji rezerwacji w operacji niepodzielnej z operacją dołączania rekordów. Jeśli dołączanie zakończy się niepowodzeniem, żadne miejsce nie jest zarezerwowane.
Zwykle ta metoda może zakończyć się 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 awaria dysku podczas żądania we/wy, spowodują zgłoszenie wyjątków po EndReserveAndAppend wywołaniu metody.