LogRecordSequence.BeginReserveAndAppend Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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ştirilmiş 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ılmak üzere 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 bir nesne.
Döndürülenler
IAsyncResult Hala beklemede olabilecek bu zaman uyumsuz işlemi temsil eden bir.
Uygulamalar
Özel durumlar
userRecord
veya previousRecord
bu dizi için geçerli değil.
-veya-
data
kayıt boyutu üst sınırından büyük olduğundan eklenemiyor.
-veya-
reservations
bu kayıt dizisi tarafından oluşturulmadı.
Bağımsız değişkenlerden biri veya daha fazlası şeklindedir null
.
userRecord
veya previousRecord
bu dizinin temel ve son sıra numaraları arasında değildir.
İstek beklenmeyen bir G/Ç özel durumu nedeniyle gerçekleştirilemedi.
-veya-
G/Ç cihazı hatası nedeniyle istek gerçekleştirilemedi.
Kayıt dizisi salt okunur erişimle açıldığından işlem gerçekleştirilemiyor.
yöntemi, dizisi atıldıktan sonra çağrılır.
Programın yürütülmesine devam etmek için yeterli bellek yok.
Kayıt dizisi dolu.
Belirtilen günlük dizisine erişim işletim sistemi tarafından reddedildi.
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çirmeniz gerekir. Zaman uyumsuz ekleme sırasında bir hata oluştuysa, yöntem bu yöntem tarafından döndürülen ile IAsyncResult çağrılana EndReserveAndAppend kadar bir özel durum oluşmaz.
parametresinde data
bulunan veriler, kayıt olarak eklemek için tek bir bayt dizisine birleştirilir. Ancak, kayıt okunduğunda verileri dizi kesimlerine bölmek için herhangi bir sağlama yapılmaz.
Belirtilen rezervasyonlar, 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şlem içinde hemen ö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öntem çağrıldığında özel durumların atılmasıyla EndReserveAndAppend sonuçlanır.
Ş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 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
Parametreler
- data
- IList<ArraySegment<Byte>>
Birleştirilmiş ve kayıt olarak eklenecek bayt dizisi kesimlerinin listesi.
- userRecord
- 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ılmak üzere 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 bir nesne.
Döndürülenler
IAsyncResult Hala beklemede olabilecek bu zaman uyumsuz işlemi temsil eden bir.
Uygulamalar
Özel durumlar
Bir veya daha fazla bağımsız değişken geçersiz.
Kayıt eklenirken G/Ç hatası oluştu.
Kayıt dizisi, yeni kaydı içerecek veya rezervasyonu yapmak için yeterli boş alan oluşturamadı.
yöntemi, dizisi atıldıktan sonra çağrılır.
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çirmeniz gerekir. Zaman uyumsuz ekleme sırasında bir hata oluştuysa, yöntem bu yöntem tarafından döndürülen ile IAsyncResult çağrılana EndReserveAndAppend kadar bir özel durum oluşmaz.
parametresinde data
bulunan veriler, kayıt olarak eklemek için tek bir bayt dizisine birleştirilir. Ancak, kayıt okunduğunda verileri dizi kesimlerine bölmek için herhangi bir sağlama yapılmaz.
Belirtilen rezervasyonlar, 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şlem içinde hemen ö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öntem çağrıldığında özel durumların atılmasıyla EndReserveAndAppend sonuçlanır.