IRecordSequence.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.
Po zastąpieniu klasy pochodnej rozpoczyna się asynchroniczną rezerwę i operację dołączania.
Przeciążenia
BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Po zastąpieniu klasy pochodnej rozpoczyna się asynchroniczną rezerwę i operację dołączania. |
BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Po zastąpieniu klasy pochodnej rozpoczyna się asynchroniczną rezerwę i operację dołączania. |
BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Po zastąpieniu klasy pochodnej rozpoczyna się asynchroniczną rezerwę i operację 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 podanej przez użytkownika kolejności.
- previousRecord
- SequenceNumber
Numer sekwencji następnego rekordu w poprzedniej kolejności.
- recordAppendOptions
- RecordAppendOptions
Prawidłowa wartość określająca RecordAppendOptions sposób zapisywania danych.
- reservationCollection
- ReservationCollection
Kolekcja rezerwacji do tworzenia 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 udostępniony przez użytkownika, który rozróżnia to konkretne żądanie asynchronicznego dołączania z 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 mieć wystarczającej ilości 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 można zwolnić odpowiednio. 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
będą łączone w jedną tablicę bajtów do 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 podanej 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 zostać ukończona przed zapisem rekordu. Aby upewnić się, że rekord został zapisany, określ ForceFlush flagę 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, spowoduje zgłaszanie wyjątków po EndReserveAndAppend wywołaniu metody.
Dotyczy
BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Po zastąpieniu klasy pochodnej rozpoczyna się asynchroniczną rezerwę i operację 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 podanej przez użytkownika kolejności.
- previousRecord
- SequenceNumber
Numer sekwencji następnego rekordu w poprzedniej kolejności.
- recordAppendOptions
- RecordAppendOptions
Prawidłowa wartość określająca RecordAppendOptions sposób zapisywania danych.
- reservationCollection
- ReservationCollection
Kolekcja rezerwacji do tworzenia 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 udostępniony przez użytkownika, który rozróżnia to konkretne żądanie asynchronicznego dołączania z 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 mieć wystarczającej ilości 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 można zwolnić odpowiednio. 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
będą łączone w jedną tablicę bajtów do 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 podanej 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 zostać ukończona przed zapisem rekordu. Aby upewnić się, że rekord został zapisany, określ ForceFlush flagę 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, spowoduje zgłaszanie wyjątków po EndReserveAndAppend wywołaniu metody.