BufferedStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) Yöntem

Tanım

Zaman uyumsuz bir okuma işlemi başlatır. (Bunun yerine kullanmayı ReadAsync(Byte[], Int32, Int32, CancellationToken) düşünün.)

public:
 override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public override IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback? callback, object? state);
public override IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback callback, object state);
public override IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback callback, object? state);
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides 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şlamak için 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 bir nesne.

Döndürülenler

Hala beklemede olabilecek zaman uyumsuz okumayı temsil eden bir nesne.

Özel durumlar

buffer, null değeridir.

offset veya count negatiftir.

Akışın sonundan sonra zaman uyumsuz bir okuma işlemi denendi.

Arabellek uzunluğu eksi offset değeri değerinden countküçük.

Geçerli akış okuma işlemini desteklemiyor.

Açıklamalar

.NET Framework 4 ve önceki sürümlerde, zaman uyumsuz dosya işlemleri uygulamak için ve EndRead gibi BeginRead yöntemleri kullanmanız gerekir. Bu yöntemler, eski kodu desteklemek için .NET Framework 4.5'te hala kullanılabilir; ancak , WriteAsyncve FlushAsyncgibi ReadAsyncyeni zaman uyumsuz yöntemler zaman uyumsuz dosya işlemlerini daha kolay uygulamanıza yardımcı olur.

EndWrite çağrısı için BeginReadtam olarak bir kez çağrılmalıdır. Başka bir okuma işlemine başlamadan önce bir okuma işleminin sonlandırılamaması kilitlenme gibi istenmeyen davranışlara neden olabilir.

Not

CanRead Geçerli örneğin okumayı destekleyip desteklemediğini belirlemek için özelliğini kullanın.

EndRead kaç bayt okundu öğrenmek için bununla IAsyncResult çağrılmalıdır.

Şunlara uygulanır