Aracılığıyla paylaş


DeflateStream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) Yöntem

Tanım

Zaman uyumsuz bir yazma işlemi başlatır. (Bunun yerine yöntemini kullanmayı WriteAsync(Byte[], Int32, Int32) düşünün.)

public:
 override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public:
 override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ array, int offset, int count, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback? asyncCallback, object? asyncState);
public override IAsyncResult BeginWrite(byte[] array, int offset, int count, AsyncCallback? asyncCallback, object? asyncState);
public override IAsyncResult BeginWrite(byte[] array, int offset, int count, AsyncCallback asyncCallback, object asyncState);
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginWrite (buffer As Byte(), offset As Integer, count As Integer, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult
Public Overrides Function BeginWrite (array As Byte(), offset As Integer, count As Integer, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult

Parametreler

arraybuffer
Byte[]

Veri yazacak arabellek.

offset
Int32

Yazmaya başlamak için bayt uzaklığı.

count
Int32

Yazacak bayt sayısı üst sınırı.

asyncCallback
AsyncCallback

Yazma işlemi tamamlandığında çağrılmak üzere isteğe bağlı bir zaman uyumsuz geri çağırma.

asyncState
Object

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

Döndürülenler

Hala beklemede olabilecek zaman uyumsuz yazma işlemini temsil eden bir nesne.

Özel durumlar

yöntemi akışın sonundan sonra zaman uyumsuz olarak yazmaya çalıştı veya bir disk hatası oluştu.

Bir veya daha fazla bağımsız değişken geçersiz.

Akış kapatıldıktan sonra yöntemler çağrıldı.

Geçerli DeflateStream uygulama yazma işlemini desteklemiyor.

Akış kapalı olduğundan yazma işlemi gerçekleştirilemiyor.

Açıklamalar

.NET Framework 4.5'den başlayarak yöntemini kullanarak WriteAsync zaman uyumsuz yazma işlemleri gerçekleştirebilirsiniz. Yöntemi BeginWrite , eski kodu desteklemek için geçerli sürümlerde hala kullanılabilir; ancak yeni zaman uyumsuz yöntemleri kullanarak zaman uyumsuz G/Ç işlemlerini daha kolay uygulayabilirsiniz. Daha fazla bilgi için bkz. Zaman Uyumsuz Dosya Girdi/Çıktı.

Yazma işleminin IAsyncResult tamamlanmasını ve kaynakları uygun şekilde serbest kalmasını sağlamak için EndWrite geçerli yöntem tarafından döndürülen nesneyi geçirin. Bunu, olarak adlandırılan BeginWrite kodu kullanarak veya öğesine BeginWritegeçirilen bir geri çağırmada kullanabilirsiniz. Zaman uyumsuz yazma işlemi sırasında bir hata oluşursa, bu yöntem tarafından döndürülen ile çağrılana IAsyncResult kadar EndWrite bir özel durum oluşmaz.

Bir akış yazılabilirse, akışın sonuna yazmak akışı genişletir.

Akıştaki geçerli konum, G/Ç işlemi tamamlandığında değil, zaman uyumsuz okuma veya yazma işlemini gönderdiğinizde güncelleştirilir. Birden çok eşzamanlı zaman uyumsuz istek, isteği tamamlama sırasını belirsiz hale getirir.

Geçerli DeflateStream nesnenin CanWrite yazmayı destekleyip desteklemediğini belirlemek için özelliğini kullanın.

Bir akış kapatılırsa veya geçersiz bir bağımsız değişken geçirirseniz, özel durumlar hemen 'den BeginWriteoluşturulur. G/Ç isteği sırasında disk hatası gibi zaman uyumsuz bir yazma isteği sırasında oluşan hatalar, iş parçacığı havuzu iş parçacığında oluşur ve çağrılırken EndWriteözel durumlar oluşturur.

Şunlara uygulanır