LogRecordSequence.BeginReserveAndAppend Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zahájí asynchronní operaci rezervace a připojení.
Přetížení
BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Zahájí asynchronní operaci rezervace a připojení. Tuto metodu nelze dědit. |
BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Zahájí asynchronní operaci rezervace a připojení. Tuto metodu nelze dědit. |
BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Zahájí asynchronní operaci rezervace a připojení. Tuto metodu nelze dědit.
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>
Seznam segmentů pole bajtů, které budou zřetězeny a připojeny jako záznam.
- nextUndoRecord
- SequenceNumber
Pořadové číslo dalšího záznamu v pořadí zadaném uživatelem.
- previousRecord
- SequenceNumber
Pořadové číslo dalšího záznamu v předchozím pořadí.
- recordAppendOptions
- RecordAppendOptions
Platná hodnota určuje RecordAppendOptions , jak se mají data zapsat.
- reservationCollection
- ReservationCollection
Kolekce rezervací, ve které se mají provádět rezervace.
- reservations
- Int64[]
Rezervace, které se mají provést, v bajtech.
- callback
- AsyncCallback
Volitelné asynchronní zpětné volání, které se má volat po dokončení připojení.
- state
- Object
Uživatelem zadaný objekt, který odlišuje tento konkrétní asynchronní přidávací požadavek od ostatních požadavků.
Návraty
Představuje IAsyncResult tuto asynchronní operaci, která může stále čekat na vyřízení.
Implementuje
Výjimky
userRecord
nebo previousRecord
není pro tuto sekvenci platná.
-nebo-
data
nelze připojit, protože je větší než maximální velikost záznamu.
-nebo-
reservations
nebyla vytvořena touto sekvencí záznamů.
Jeden nebo více argumentů je null
.
userRecord
nebo previousRecord
není mezi základním a posledním pořadovými čísly této sekvence.
Požadavek nebylo možné provést kvůli neočekávané výjimce vstupně-výstupních operací.
-nebo-
Požadavek nelze provést kvůli chybě vstupně-výstupního zařízení.
Operaci nelze provést, protože sekvence záznamů byla otevřena s přístupem jen pro čtení.
Metoda byla volána po odstranění sekvence.
Pro pokračování v provádění programu není dostatek paměti.
Posloupnost záznamů je plná.
Operační systém odepře přístup k zadané sekvenci protokolu.
Na webu se nenachází reservations
žádná rezervace dostatečně velká, aby se vešladata
.
Poznámky
Vrácený touto metodou EndReserveAndAppend byste měli předat IAsyncResult metodě , abyste zajistili, že operace připojení byla dokončena a prostředky lze odpovídajícím způsobem uvolnit. Pokud došlo k chybě během asynchronního připojení, výjimka není vyvolána, dokud EndReserveAndAppend je volána metoda s IAsyncResult vrácenou touto metodou.
Data obsažená v parametru data
budou zřetězena do jednoho bajtového pole pro připojení jako záznam. Při čtení záznamu však není provedeno žádné ustanovení pro rozdělení dat zpět do segmentů pole.
Zadané rezervace se přidají do zadané kolekce rezervací v atomické operaci pomocí operace připojení záznamu. Pokud se připojení nezdaří, nevyhradí se žádné místo.
Za normálních okolností se tato metoda může dokončit před zápisem záznamu. Pokud chcete zajistit, aby byl záznam zapsán, zadejte ForceFlush příznak pomocí parametru recordAppendOptions
nebo volejte metodu Flush .
Pokud byla sekvence záznamů odstraněna nebo pokud předáte neplatný argument, jsou výjimky vyvolána okamžitě v rámci této operace. Chyby, ke kterým došlo během asynchronního přidávacího požadavku, například při selhání disku během V/V požadavku, budou mít za následek vyvolání výjimek při EndReserveAndAppend zavolání metody.
Platí pro
BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Zahájí asynchronní operaci rezervace a připojení. Tuto metodu nelze dědit.
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>>
Seznam segmentů pole bajtů, které budou zřetězeny a připojeny jako záznam.
- userRecord
- SequenceNumber
Pořadové číslo dalšího záznamu v pořadí zadaném uživatelem.
- previousRecord
- SequenceNumber
Pořadové číslo dalšího záznamu v předchozím pořadí.
- recordAppendOptions
- RecordAppendOptions
Platná hodnota určuje RecordAppendOptions , jak se mají data zapsat.
- reservationCollection
- ReservationCollection
Kolekce rezervací, ve které se mají provádět rezervace.
- reservations
- Int64[]
Rezervace, které se mají provést, v bajtech.
- callback
- AsyncCallback
Volitelné asynchronní zpětné volání, které se má volat po dokončení připojení.
- state
- Object
Uživatelem zadaný objekt, který odlišuje tento konkrétní asynchronní přidávací požadavek od ostatních požadavků.
Návraty
Představuje IAsyncResult tuto asynchronní operaci, která může stále čekat na vyřízení.
Implementuje
Výjimky
Jeden nebo více argumentů je neplatných.
Při připojování záznamu došlo k vstupně-výstupní chybě.
V sekvenci záznamů se nepodařilo vytvořit dostatek volného místa pro nový záznam nebo pro vytvoření rezervace.
Metoda byla volána po odstranění sekvence.
Poznámky
Vrácený touto metodou EndReserveAndAppend byste měli předat IAsyncResult metodě , abyste zajistili, že operace připojení byla dokončena a prostředky lze odpovídajícím způsobem uvolnit. Pokud došlo k chybě během asynchronního připojení, výjimka není vyvolána, dokud EndReserveAndAppend je volána metoda s IAsyncResult vrácenou touto metodou.
Data obsažená v parametru data
budou zřetězena do jednoho bajtového pole pro připojení jako záznam. Při čtení záznamu však není provedeno žádné ustanovení pro rozdělení dat zpět do segmentů pole.
Zadané rezervace se přidají do zadané kolekce rezervací v atomické operaci pomocí operace připojení záznamu. Pokud se připojení nezdaří, nevyhradí se žádné místo.
Za normálních okolností se tato metoda může dokončit před zápisem záznamu. Pokud chcete zajistit, aby byl záznam zapsán, zadejte ForceFlush příznak pomocí parametru recordAppendOptions
nebo volejte metodu Flush .
Pokud byla sekvence záznamů odstraněna nebo pokud předáte neplatný argument, jsou výjimky vyvolána okamžitě v rámci této operace. Chyby, ke kterým došlo během asynchronního přidávacího požadavku, například při selhání disku během V/V požadavku, budou mít za následek vyvolání výjimek při EndReserveAndAppend zavolání metody.
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro