Udostępnij za pośrednictwem


FileRecordSequence.BeginWriteRestartArea Metoda

Definicja

Rozpoczyna asynchroniczną operację zapisu obszaru ponownego uruchamiania.

Przeciążenia

BeginWriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Rozpoczyna asynchroniczną operację zapisu obszaru ponownego uruchamiania przy użyciu miejsca zarezerwowanego wcześniej w sekwencji. Nie można dziedziczyć tej metody.

BeginWriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Rozpoczyna asynchroniczną operację zapisu obszaru ponownego uruchamiania przy użyciu miejsca zarezerwowanego wcześniej w sekwencji. Nie można dziedziczyć tej metody.

BeginWriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Rozpoczyna asynchroniczną operację zapisu obszaru ponownego uruchamiania przy użyciu miejsca zarezerwowanego wcześniej w sekwencji. Nie można dziedziczyć tej metody.

public:
 virtual IAsyncResult ^ BeginWriteRestartArea(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber newBaseSeqNum, System::IO::Log::ReservationCollection ^ reservation, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginWriteRestartArea (ArraySegment<byte> data, System.IO.Log.SequenceNumber newBaseSeqNum, System.IO.Log.ReservationCollection reservation, AsyncCallback callback, object state);
abstract member BeginWriteRestartArea : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
override this.BeginWriteRestartArea : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
Public Function BeginWriteRestartArea (data As ArraySegment(Of Byte), newBaseSeqNum As SequenceNumber, reservation As ReservationCollection, 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.

newBaseSeqNum
SequenceNumber

Nowy numer sekwencji podstawowej. Określony numer sekwencji musi być większy lub równy bieżącemu numerowi sekwencji bazowej.

reservation
ReservationCollection

Element ReservationCollection zawierający rezerwację, która powinna być używana dla tego obszaru ponownego uruchamiania.

callback
AsyncCallback

Opcjonalne wywołanie zwrotne asynchroniczne, które ma być wywoływane po zakończeniu zapisu obszaru ponownego uruchamiania.

state
Object

Obiekt udostępniony przez użytkownika, który rozróżnia ten konkretny asynchroniczny żądanie zapisu obszaru ponownego uruchamiania z innych żądań.

Zwraca

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

Implementuje

Wyjątki

Co najmniej jeden argument to null.

newBaseSeqNum nie znajduje się między numerami podstawowymi i ostatnimi sekwencjami tej sekwencji.

-lub-

Nowy lub istniejący archiwum ogon lub baza aktywnego dziennika jest nieprawidłowa.

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

-lub-

newBaseSeqNum jest nieprawidłowa dla tej sekwencji.

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ć wartość zwróconą IAsyncResult przez tę metodę do EndWriteRestartArea metody, aby upewnić się, że operacja zapisu obszaru ponownego uruchomienia została ukończona, a zasoby można zwolnić odpowiednio. Jeśli wystąpił błąd podczas asynchronicznej operacji zapisu obszaru ponownego uruchamiania, wyjątek nie zostanie zgłoszony, dopóki EndWriteRestartArea 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.

Po pomyślnym zakończeniu operacji numer sekwencji podstawowej został zaktualizowany. Wszystkie rekordy dziennika z numerami sekwencji mniejszymi niż nowy numer sekwencji podstawowej są niedostępne.

Jeśli zostanie ReservationCollection określony, zapisany obszar ponownego uruchamiania będzie zużywać miejsce, które zostało wcześniej zarezerwowane, przy użyciu rezerwacji zawartej w kolekcji. Jeśli metoda powiedzie się, będzie korzystać z najmniejszej rezerwacji, która może przechowywać dane, a rezerwacja zostanie usunięta z kolekcji.

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 EndWriteRestartArea wywołaniu metody.

Dotyczy

BeginWriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Rozpoczyna asynchroniczną operację zapisu obszaru ponownego uruchamiania przy użyciu miejsca zarezerwowanego wcześniej w sekwencji. Nie można dziedziczyć tej metody.

public:
 virtual IAsyncResult ^ BeginWriteRestartArea(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber newBaseSeqNum, System::IO::Log::ReservationCollection ^ reservation, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginWriteRestartArea (System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber newBaseSeqNum, System.IO.Log.ReservationCollection reservation, AsyncCallback callback, object state);
abstract member BeginWriteRestartArea : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
override this.BeginWriteRestartArea : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
Public Function BeginWriteRestartArea (data As IList(Of ArraySegment(Of Byte)), newBaseSeqNum As SequenceNumber, reservation As ReservationCollection, 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.

newBaseSeqNum
SequenceNumber

Nowy numer sekwencji podstawowej. Określony numer sekwencji musi być większy lub równy bieżącemu numerowi sekwencji bazowej.

reservation
ReservationCollection

Element ReservationCollection zawierający rezerwację, która powinna być używana dla tego obszaru ponownego uruchamiania.

callback
AsyncCallback

Opcjonalne wywołanie zwrotne asynchroniczne, które ma być wywoływane po zakończeniu zapisu obszaru ponownego uruchamiania.

state
Object

Obiekt udostępniony przez użytkownika, który rozróżnia ten konkretny asynchroniczny żądanie zapisu obszaru ponownego uruchamiania z innych żądań.

Zwraca

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

Implementuje

Wyjątki

Co najmniej jeden argument to null.

newBaseSeqNum nie znajduje się między numerami podstawowymi i ostatnimi sekwencjami tej sekwencji.

-lub-

Nowy lub istniejący archiwum ogon lub baza aktywnego dziennika jest nieprawidłowa.

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

-lub-

newBaseSeqNum jest nieprawidłowa dla tej sekwencji.

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ć wartość zwróconą IAsyncResult przez tę metodę do EndWriteRestartArea metody, aby upewnić się, że operacja zapisu obszaru ponownego uruchomienia została ukończona, a zasoby można zwolnić odpowiednio. Jeśli wystąpił błąd podczas asynchronicznej operacji zapisu obszaru ponownego uruchamiania, wyjątek nie zostanie zgłoszony, dopóki EndWriteRestartArea 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.

Po pomyślnym zakończeniu operacji numer sekwencji podstawowej został zaktualizowany. Wszystkie rekordy dziennika z numerami sekwencji mniejszymi niż nowy numer sekwencji podstawowej są niedostępne.

Jeśli zostanie ReservationCollection określony, zapisany obszar ponownego uruchamiania będzie zużywać miejsce, które zostało wcześniej zarezerwowane, przy użyciu rezerwacji zawartej w kolekcji. Jeśli metoda powiedzie się, będzie korzystać z najmniejszej rezerwacji, która może przechowywać dane, a rezerwacja zostanie usunięta z kolekcji.

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 EndWriteRestartArea wywołaniu metody.

Dotyczy