FileRecordSequence.BeginReserveAndAppend Metod

Definition

Påbörjar en asynkron reserv- och tilläggsåtgärd.

Överlagringar

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

Påbörjar en asynkron reserv- och tilläggsåtgärd. Den här metoden kan inte ärvas.

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

Parametrar

data
ArraySegment<Byte>

En lista över bytematrissegment som sammanfogas och läggs till som post.

nextUndoRecord
SequenceNumber

Sekvensnumret för nästa post i den användardefinierade ordningen.

previousRecord
SequenceNumber

Sekvensnumret för nästa post i Föregående ordning.

recordAppendOptions
RecordAppendOptions

Ett giltigt värde RecordAppendOptions för detta anger hur data ska skrivas.

reservationCollection
ReservationCollection

Reservationssamlingen som du vill göra reservationer i.

reservations
Int64[]

De reservationer som ska göras i byte.

callback
AsyncCallback

Ett valfritt asynkront återanrop som ska anropas när tillägget är klart.

state
Object

Ett objekt som tillhandahålls av användaren och som skiljer den här specifika asynkrona tilläggsbegäran från andra begäranden.

Returer

En IAsyncResult som representerar den här asynkrona åtgärden, som fortfarande kan vara väntande.

Implementeringar

Undantag

Ett eller flera av argumenten är null.

Ett eller flera av argumenten ligger inom intervallet.

reservations skapades inte av den här postsekvensen.

Det går inte att utföra åtgärden eftersom postsekvensen öppnades med skrivskyddad åtkomst.

Det gick inte att utföra begäran på grund av ett oväntat I/O-undantag.

Metoden anropades efter att sekvensen har tagits bort.

Det finns inte tillräckligt med minne för att fortsätta körningen av programmet.

Postsekvensen är full.

Det finns ingen reservation som är tillräckligt stor för att passa data i reservations.

Kommentarer

Du bör skicka den IAsyncResult som returneras av den EndReserveAndAppend här metoden till metoden för att säkerställa att tilläggsåtgärden har slutförts och att resurser kan frigöras på rätt sätt. Om ett fel har inträffat under ett asynkront tillägg utlöses inte ett undantag förrän EndReserveAndAppend metoden anropas med den IAsyncResult returnerade metoden.

Data som finns i parametern data sammanfogas till en enskild bytematris för att läggas till som post. Ingen etablering görs dock för att dela upp data i matrissegment igen när posten läse.

De angivna reservationerna läggs till i den angivna reservationssamlingen i en atomisk åtgärd med en post-tilläggsåtgärd. Om tillägget misslyckas är inget utrymme reserverat.

Normalt kan den här metoden slutföras innan posten har skrivits. För att säkerställa att en post har skrivits anger du ForceFlush antingen flaggan med parametern recordAppendOptions eller anropar Flush metoden.

Om en postsekvens har tagits bort eller om du skickar ett ogiltigt argument utlöses undantag omedelbart inom den här åtgärden. Fel som inträffade under en asynkron tilläggsbegäran, till exempel ett diskfel under I/O-begäran, resulterar i undantag som utlöses när EndReserveAndAppend metoden anropas.

Gäller för

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

Påbörjar en asynkron reserv- och tilläggsåtgärd. Den här metoden kan inte ärvas.

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

Parametrar

data
IList<ArraySegment<Byte>>

En lista över bytematrissegment som sammanfogas och läggs till som post.

nextUndoRecord
SequenceNumber

Sekvensnumret för nästa post i den användardefinierade ordningen.

previousRecord
SequenceNumber

Sekvensnumret för nästa post i Föregående ordning.

recordAppendOptions
RecordAppendOptions

Ett giltigt värde RecordAppendOptions för detta anger hur data ska skrivas.

reservationCollection
ReservationCollection

Reservationssamlingen som du vill göra reservationer i.

reservations
Int64[]

De reservationer som ska göras i byte.

callback
AsyncCallback

Ett valfritt asynkront återanrop som ska anropas när tillägget är klart.

state
Object

Ett objekt som tillhandahålls av användaren och som skiljer den här specifika asynkrona tilläggsbegäran från andra begäranden.

Returer

En IAsyncResult som representerar den här asynkrona åtgärden, som fortfarande kan vara väntande.

Implementeringar

Undantag

Ett eller flera av argumenten är null.

Ett eller flera av argumenten ligger inom intervallet.

reservations skapades inte av den här postsekvensen.

Det går inte att utföra åtgärden eftersom postsekvensen öppnades med skrivskyddad åtkomst.

Det gick inte att utföra begäran på grund av ett oväntat I/O-undantag.

Metoden anropades efter att sekvensen har tagits bort.

Det finns inte tillräckligt med minne för att fortsätta körningen av programmet.

Postsekvensen är full.

Det finns ingen reservation som är tillräckligt stor för att passa data i reservations.

Kommentarer

Du bör skicka den IAsyncResult som returneras av den EndReserveAndAppend här metoden till metoden för att säkerställa att tilläggsåtgärden har slutförts och att resurser kan frigöras på rätt sätt. Om ett fel har inträffat under ett asynkront tillägg utlöses inte ett undantag förrän EndReserveAndAppend metoden anropas med den IAsyncResult returnerade metoden.

Data som finns i parametern data sammanfogas till en enskild bytematris för att läggas till som post. Ingen etablering görs dock för att dela upp data i matrissegment igen när posten läse.

De angivna reservationerna läggs till i den angivna reservationssamlingen i en atomisk åtgärd med en post-tilläggsåtgärd. Om tillägget misslyckas är inget utrymme reserverat.

Normalt kan den här metoden slutföras innan posten har skrivits. För att säkerställa att en post har skrivits anger du ForceFlush antingen flaggan med parametern recordAppendOptions eller anropar Flush metoden.

Om en postsekvens har tagits bort eller om du skickar ett ogiltigt argument utlöses undantag omedelbart inom den här åtgärden. Fel som inträffade under en asynkron tilläggsbegäran, till exempel ett diskfel under I/O-begäran, resulterar i undantag som utlöses när EndReserveAndAppend metoden anropas.

Gäller för