Udostępnij za pośrednictwem


FileRecordSequence.BeginReserveAndAppend Metoda

Definicja

Rozpoczyna asynchroniczną rezerwę i operację dołączania.

Przeciążenia

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

Rozpoczyna asynchroniczną rezerwę i operację dołączania. Nie można dziedziczyć tej metody.

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

Rozpoczyna asynchroniczną rezerwę i operację dołączania. Nie można dziedziczyć tej metody.

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

Rozpoczyna asynchroniczną rezerwę i operację dołączania. Nie można dziedziczyć tej metody.

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 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.

Implementuje

Wyjątki

Co najmniej jeden argument to null.

Jeden lub więcej argumentów jest poza zakresem.

reservations ta sekwencja rekordów nie została utworzona.

Nie można wykonać operacji, ponieważ sekwencja rekordów została otwarta z dostępem tylko do odczytu.

Nie można wykonać żądania z powodu nieoczekiwanego wyjątku we/wy.

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

Za mało pamięci, aby kontynuować wykonywanie programu.

Sekwencja rekordów jest pełna.

Nie można znaleźć rezerwacji wystarczająco dużej, aby zmieścić się data w pliku reservations.

Uwagi

Należy przekazać element zwrócony IAsyncResult przez tę 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)

Rozpoczyna asynchroniczną rezerwę i operację dołączania. Nie można dziedziczyć tej metody.

public:
 virtual 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
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)), 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.

Implementuje

Wyjątki

Co najmniej jeden argument to null.

Jeden lub więcej argumentów jest poza zakresem.

reservations ta sekwencja rekordów nie została utworzona.

Nie można wykonać operacji, ponieważ sekwencja rekordów została otwarta z dostępem tylko do odczytu.

Nie można wykonać żądania z powodu nieoczekiwanego wyjątku we/wy.

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

Za mało pamięci, aby kontynuować wykonywanie programu.

Sekwencja rekordów jest pełna.

Nie można znaleźć rezerwacji wystarczająco dużej, aby zmieścić się data w pliku reservations.

Uwagi

Należy przekazać element zwrócony IAsyncResult przez tę 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