FileRecordSequence.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í.
Spustí asynchronní operaci rezervace a připojení.
Přetížení
BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Spustí asynchronní operaci rezervace a připojení. Tuto metodu nelze dědit. |
BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Spustí asynchronní operaci rezervace a připojení. Tuto metodu nelze dědit. |
BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Spustí 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 RecordAppendOptions , která určuje způsob zápisu dat.
- 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
Objekt zadaný uživatelem, který odlišuje tento konkrétní asynchronní požadavek připojení od jiných požadavků.
Návraty
Jedná se o IAsyncResult asynchronní operaci, která může být stále čeká na vyřízení.
Implementuje
Výjimky
Jeden nebo více argumentů je null
.
Jeden nebo více argumentů je mimo rozsah.
reservations
nebyla vytvořena v této sekvenci záznamů.
Operaci nelze provést, protože sekvence záznamů byla otevřena s přístupem jen pro čtení.
Požadavek nelze provést kvůli neočekávané výjimce vstupně-výstupních operací.
Metoda byla volána po odstranění sekvence.
K pokračování v provádění programu není dostatek paměti.
Sekvence záznamů je plná.
Žádnou rezervaci dostatečně velkou na to, aby se vešla data
, najdete v reservations
.
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í, nevyvolá se výjimka, dokud EndReserveAndAppend není volána metoda s IAsyncResult vrácenou touto metodou.
Data obsažená v parametru data
budou zřetězena do pole s jedním bajtem pro připojení jako záznamu. Při čtení záznamu však není provedeno žádné ustanovení pro rozdělení dat zpět na segmenty pole.
Zadané rezervace se přidají do poskytnuté kolekce rezervací v atomické operaci s operací připojení záznamu. Pokud připojení selže, není vyhrazeno žádné místo.
Za normálních okolností může být tato metoda dokončena před zápisem záznamu. Chcete-li zajistit, aby záznam byl zapsán, zadejte ForceFlush příznak pomocí parametru recordAppendOptions
, nebo zavolejte metodu Flush .
Pokud byla sekvence záznamů odstraněna nebo pokud předáte neplatný argument, jsou v rámci této operace okamžitě vyvolány výjimky. Chyby, ke kterým došlo během asynchronního žádosti o připojení, například 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)
Spustí 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 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>>
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 RecordAppendOptions , která určuje způsob zápisu dat.
- 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
Objekt zadaný uživatelem, který odlišuje tento konkrétní asynchronní požadavek připojení od jiných požadavků.
Návraty
Jedná se o IAsyncResult asynchronní operaci, která může být stále čeká na vyřízení.
Implementuje
Výjimky
Jeden nebo více argumentů je null
.
Jeden nebo více argumentů je mimo rozsah.
reservations
nebyla vytvořena v této sekvenci záznamů.
Operaci nelze provést, protože sekvence záznamů byla otevřena s přístupem jen pro čtení.
Požadavek nelze provést kvůli neočekávané výjimce vstupně-výstupních operací.
Metoda byla volána po odstranění sekvence.
K pokračování v provádění programu není dostatek paměti.
Sekvence záznamů je plná.
Žádnou rezervaci dostatečně velkou na to, aby se vešla data
, najdete v reservations
.
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í, nevyvolá se výjimka, dokud EndReserveAndAppend není volána metoda s IAsyncResult vrácenou touto metodou.
Data obsažená v parametru data
budou zřetězena do pole s jedním bajtem pro připojení jako záznamu. Při čtení záznamu však není provedeno žádné ustanovení pro rozdělení dat zpět na segmenty pole.
Zadané rezervace se přidají do poskytnuté kolekce rezervací v atomické operaci s operací připojení záznamu. Pokud připojení selže, není vyhrazeno žádné místo.
Za normálních okolností může být tato metoda dokončena před zápisem záznamu. Chcete-li zajistit, aby záznam byl zapsán, zadejte ForceFlush příznak pomocí parametru recordAppendOptions
, nebo zavolejte metodu Flush .
Pokud byla sekvence záznamů odstraněna nebo pokud předáte neplatný argument, jsou v rámci této operace okamžitě vyvolány výjimky. Chyby, ke kterým došlo během asynchronního žádosti o připojení, například 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.