Stream.BeginRead(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 okuma işlemi başlatır. (Bunun yerine kullanmayı ReadAsync(Byte[], Int32, Int32) göz önünde bulundurun.)
public:
virtual IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public virtual IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback? callback, object? state);
public virtual IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback callback, object state);
public virtual IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback callback, object? state);
abstract member BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overridable Function BeginRead (buffer As Byte(), offset As Integer, count As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Parametreler
- buffer
- Byte[]
Verilerin okunması için arabellek.
- offset
- Int32
Akıştan okunan verileri yazmaya başlayabileceğiniz bayt uzaklığı buffer
.
- count
- Int32
Okunacak bayt sayısı üst sınırı.
- callback
- AsyncCallback
Okuma tamamlandığında çağrılmak üzere isteğe bağlı bir zaman uyumsuz geri çağırma.
- state
- Object
Bu belirli zaman uyumsuz okuma isteğini diğer isteklerden ayıran kullanıcı tarafından sağlanan nesne.
Döndürülenler
IAsyncResult Zaman uyumsuz okumayı temsil eden ve hala beklemede olabilecek bir.
Özel durumlar
Akışın sonundan sonra zaman uyumsuz bir okuma 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 okuma işlemini desteklemiyor.
Açıklamalar
.NET Framework 4 ve önceki sürümlerde, zaman uyumsuz G/Ç işlemlerini uygulamak için BeginRead ve EndRead 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ı BeginRead
bir akışta yöntemini zaman uyumlu olarak çağırır Read , bu da bazı akışlarda engellenebileceği Read
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ı BeginRead
bu akışlarda engellenmez. Zaman uyumsuz davranış sağlamak için (örneğin, zaman uyumsuz temsilciler kullanarak) geçersiz kılabilirsiniz BeginRead
.
IAsyncResult
Okunan bayt sayısını belirlemek ve okuma için kullanılan işletim sistemi kaynaklarını serbest bırakmak için dönüş değerini EndRead akışın yöntemine geçirin. EndRead her çağrısı BeginReadiçin bir kez çağrılmalıdır. Bunu, çağıran BeginRead
aynı kodu kullanarak veya öğesine BeginRead
geçirilen bir geri çağırmada yapabilirsiniz.
Akıştaki geçerli konum, G/Ç işlemi tamamlandığında değil, zaman uyumsuz okuma veya yazma işlemi yapıldığında güncelleştirilir.
Birden çok eşzamanlı zaman uyumsuz istek, isteğin tamamlanma sırasını belirsiz hale getirir.
CanRead Geçerli örneğin okumayı 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 BeginRead
oluşturulur. G/Ç isteği sırasında disk hatası gibi zaman uyumsuz bir okuma isteği sırasında oluşan hatalar, iş parçacığı havuzu iş parçacığında oluşur ve çağrılırken EndRead
özel durumlar oluşturur.