Stream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) 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 yazma işlemi başlatır. (Bunun yerine kullanmayı WriteAsync(Byte[], Int32, Int32) göz önünde bulundurun.)
public:
virtual IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public virtual IAsyncResult BeginWrite (byte[] buffer, int offset, int count, AsyncCallback? callback, object? state);
public virtual IAsyncResult BeginWrite (byte[] buffer, int offset, int count, AsyncCallback callback, object state);
public virtual IAsyncResult BeginWrite (byte[] buffer, int offset, int count, AsyncCallback callback, object? state);
abstract member BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overridable Function BeginWrite (buffer As Byte(), offset As Integer, count As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Parametreler
- buffer
- Byte[]
Veri yazacak arabellek.
- offset
- Int32
Yazmaya başlayabileceğiniz bayt uzaklığı buffer
.
- count
- Int32
Yazacak bayt sayısı üst sınırı.
- callback
- AsyncCallback
Yazma işlemi tamamlandığında çağrılmak üzere isteğe bağlı bir zaman uyumsuz geri çağırma.
- state
- Object
Bu belirli zaman uyumsuz yazma isteğini diğer isteklerden ayıran kullanıcı tarafından sağlanan nesne.
Döndürülenler
IAsyncResult
Hala beklemede olabilecek zaman uyumsuz yazma işlemini temsil eden bir.
Özel durumlar
Akışın sonundan sonra zaman uyumsuz yazma girişiminde bulunulan veya 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 Stream
uygulama yazma işlemini desteklemiyor.
Açıklamalar
.NET Framework 4 ve önceki sürümlerde, zaman uyumsuz G/Ç işlemlerini uygulamak için BeginWrite ve EndWrite gibi yöntemler kullanmanız gerekir. Bu yöntemler eski kodu desteklemek için .NET Framework 4.5'te hala kullanılabilir; ancak , WriteAsync, CopyToAsyncve FlushAsyncgibi ReadAsyncyeni zaman uyumsuz yöntemler zaman uyumsuz G/Ç işlemlerini daha kolay uygulamanıza yardımcı olur.
Varsayılan uygulaması BeginWrite
bir akışta yöntemini zaman uyumlu olarak çağırır Write , bu da bazı akışlarda engellenebileceği Write
anlamına gelir. Ancak ve gibi FileStream
NetworkStream
sınıfların örnekleri zaman uyumsuz olarak açılmışsa zaman uyumsuz işlemleri tam olarak destekler. Bu nedenle, çağrısı BeginWrite
bu akışlarda engellenmez. Zaman uyumsuz davranış sağlamak için (örneğin, zaman uyumsuz temsilciler kullanarak) geçersiz kılabilirsiniz BeginWrite
.
Yazma işleminin IAsyncResult
tamamlandığından ve kaynakları uygun şekilde serbest sağladığından emin olmak için geçerli yöntem EndWrite tarafından döndürülen değerini geçirin. EndWrite her çağrısı BeginWriteiçin bir kez çağrılmalıdır. Bunu, çağıran BeginWrite
aynı kodu kullanarak veya öğesine BeginWrite
geçirilen bir geri çağırmada yapabilirsiniz. Zaman uyumsuz yazma sırasında 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şlemi yaptığınızda güncelleştirilir. Birden çok eşzamanlı zaman uyumsuz istek, isteğin tamamlanma sırasını belirsiz hale getirir.
CanWrite Geçerli örneğin 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 BeginWrite
oluşturulur. G/Ç isteği sırasında disk hatası gibi zaman uyumsuz 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
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin