FileRecordSequence.BeginReserveAndAppend Yöntem

Tanım

Zaman uyumsuz bir ayırma ve ekleme işlemi başlatır.

Aşırı Yüklemeler

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

Zaman uyumsuz bir ayırma ve ekleme işlemi başlatır. Bu yöntem devralınamaz.

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

Zaman uyumsuz bir ayırma ve ekleme işlemi başlatır. Bu yöntem devralınamaz.

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

Zaman uyumsuz bir ayırma ve ekleme işlemi başlatır. Bu yöntem devralınamaz.

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

Parametreler

data
ArraySegment<Byte>

Birleştirilecek ve kayıt olarak eklenecek bayt dizisi kesimlerinin listesi.

nextUndoRecord
SequenceNumber

Kullanıcı tarafından belirtilen sırada bir sonraki kaydın sıra numarası.

previousRecord
SequenceNumber

Önceki sırada bir sonraki kaydın sıra numarası.

recordAppendOptions
RecordAppendOptions

Verilerin nasıl yazılması gerektiğini belirten geçerli değeri RecordAppendOptions .

reservationCollection
ReservationCollection

Rezervasyon yapmak için rezervasyon koleksiyonu.

reservations
Int64[]

Bayt cinsinden yapılması gereken rezervasyonlar.

callback
AsyncCallback

Ekleme tamamlandığında çağrılabilecek isteğe bağlı bir zaman uyumsuz geri çağırma.

state
Object

Bu belirli zaman uyumsuz ekleme isteğini diğer isteklerden ayıran kullanıcı tarafından sağlanan nesne.

Döndürülenler

IAsyncResult Hala beklemede olabilecek bu zaman uyumsuz işlemi temsil eden bir.

Uygulamalar

Özel durumlar

Bağımsız değişkenlerden biri veya daha fazlası şeklindedir null.

Bir veya daha fazla bağımsız değişken aralık dışında.

reservations bu kayıt dizisi tarafından oluşturulmadı.

Kayıt sırası salt okunur erişimle açıldığından işlem gerçekleştirilemiyor.

Beklenmeyen bir G/Ç özel durumu nedeniyle istek gerçekleştirilemedi.

yöntemi, sıra atıldıktan sonra çağrıldı.

Programın yürütülmesine devam etmek için yeterli bellek yok.

Kayıt sırası dolu.

içinde sığacak data kadar büyük rezervasyon bulunamaz reservations.

Açıklamalar

Ekleme işleminin tamamlandığından IAsyncResultEndReserveAndAppend ve kaynakların uygun şekilde serbest olduğundan emin olmak için bu yöntem tarafından döndürülen öğesini yöntemine geçirmelisiniz. Zaman uyumsuz ekleme sırasında bir hata oluştuysa, yöntemi bu yöntem tarafından döndürülen ile IAsyncResult çağrılana EndReserveAndAppend kadar bir özel durum oluşmaz.

parametresinde data yer alan veriler, kayıt olarak eklenmek üzere tek bir bayt dizisinde birleştirilir. Ancak, kayıt okunduğunda verileri dizi kesimlerine bölmek için herhangi bir sağlama yapılmaz.

Belirtilen rezervasyonlar, bir kayıt ekleme işlemiyle atomik bir işlemde sağlanan rezervasyon koleksiyonuna eklenir. Ekleme başarısız olursa, hiçbir alan ayrılmaz.

Normalde, bu yöntem kayıt yazılmadan önce tamamlanabilir. Bir kaydın yazılmasını sağlamak için parametresini ForceFlush kullanarak recordAppendOptions bayrağını belirtin veya yöntemini çağırın Flush .

Bir kayıt dizisi atılmışsa veya geçersiz bir bağımsız değişken geçirirseniz, bu işlemin hemen içinde özel durumlar oluşturulur. Zaman uyumsuz ekleme isteği sırasında oluşan hatalar(örneğin, G/Ç isteği sırasında bir disk hatası) yöntemi çağrıldığında özel durumların ortaya çıkışına EndReserveAndAppend neden olur.

Şunlara uygulanır

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

Zaman uyumsuz bir ayırma ve ekleme işlemi başlatır. Bu yöntem devralınamaz.

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

Parametreler

data
IList<ArraySegment<Byte>>

Birleştirilecek ve kayıt olarak eklenecek bayt dizisi kesimlerinin listesi.

nextUndoRecord
SequenceNumber

Kullanıcı tarafından belirtilen sırada bir sonraki kaydın sıra numarası.

previousRecord
SequenceNumber

Önceki sırada bir sonraki kaydın sıra numarası.

recordAppendOptions
RecordAppendOptions

Verilerin nasıl yazılması gerektiğini belirten geçerli değeri RecordAppendOptions .

reservationCollection
ReservationCollection

Rezervasyon yapmak için rezervasyon koleksiyonu.

reservations
Int64[]

Bayt cinsinden yapılması gereken rezervasyonlar.

callback
AsyncCallback

Ekleme tamamlandığında çağrılabilecek isteğe bağlı bir zaman uyumsuz geri çağırma.

state
Object

Bu belirli zaman uyumsuz ekleme isteğini diğer isteklerden ayıran kullanıcı tarafından sağlanan nesne.

Döndürülenler

IAsyncResult Hala beklemede olabilecek bu zaman uyumsuz işlemi temsil eden bir.

Uygulamalar

Özel durumlar

Bağımsız değişkenlerden biri veya daha fazlası şeklindedir null.

Bir veya daha fazla bağımsız değişken aralık dışında.

reservations bu kayıt dizisi tarafından oluşturulmadı.

Kayıt sırası salt okunur erişimle açıldığından işlem gerçekleştirilemiyor.

Beklenmeyen bir G/Ç özel durumu nedeniyle istek gerçekleştirilemedi.

yöntemi, sıra atıldıktan sonra çağrıldı.

Programın yürütülmesine devam etmek için yeterli bellek yok.

Kayıt sırası dolu.

içinde sığacak data kadar büyük rezervasyon bulunamaz reservations.

Açıklamalar

Ekleme işleminin tamamlandığından IAsyncResultEndReserveAndAppend ve kaynakların uygun şekilde serbest olduğundan emin olmak için bu yöntem tarafından döndürülen öğesini yöntemine geçirmelisiniz. Zaman uyumsuz ekleme sırasında bir hata oluştuysa, yöntemi bu yöntem tarafından döndürülen ile IAsyncResult çağrılana EndReserveAndAppend kadar bir özel durum oluşmaz.

parametresinde data yer alan veriler, kayıt olarak eklenmek üzere tek bir bayt dizisinde birleştirilir. Ancak, kayıt okunduğunda verileri dizi kesimlerine bölmek için herhangi bir sağlama yapılmaz.

Belirtilen rezervasyonlar, bir kayıt ekleme işlemiyle atomik bir işlemde sağlanan rezervasyon koleksiyonuna eklenir. Ekleme başarısız olursa, hiçbir alan ayrılmaz.

Normalde, bu yöntem kayıt yazılmadan önce tamamlanabilir. Bir kaydın yazılmasını sağlamak için parametresini ForceFlush kullanarak recordAppendOptions bayrağını belirtin veya yöntemini çağırın Flush .

Bir kayıt dizisi atılmışsa veya geçersiz bir bağımsız değişken geçirirseniz, bu işlemin hemen içinde özel durumlar oluşturulur. Zaman uyumsuz ekleme isteği sırasında oluşan hatalar(örneğin, G/Ç isteği sırasında bir disk hatası) yöntemi çağrıldığında özel durumların ortaya çıkışına EndReserveAndAppend neden olur.

Şunlara uygulanır