Aracılığıyla paylaş


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

Tanım

'den zaman uyumsuz bir okuma başlatır NetworkStream.

public:
 override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public:
 override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int size, 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 size, AsyncCallback? callback, object? state);
public override IAsyncResult BeginRead(byte[] buffer, int offset, int size, AsyncCallback callback, object state);
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
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
Public Overrides Function BeginRead (buffer As Byte(), offset As Integer, size As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

Parametreler

buffer
Byte[]

dosyasından okunan NetworkStreamverileri depolamak için bellekteki konum olan tür Byte dizisi.

offset
Int32

Verileri depolamaya başlamak için içindeki buffer konum.

countsize
Int32

'den NetworkStreamokunacak bayt sayısı.

callback
AsyncCallback

AsyncCallback Tamamlandığında yürütülen BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) temsilci.

state
Object

Kullanıcı tanımlı ek veriler içeren bir nesne.

Döndürülenler

IAsyncResult Zaman uyumsuz çağrıyı temsil eden.

Özel durumlar

buffer parametresi null'dir.

offset Parametresi 0'dan küçük.

-veya-

offset parametresi paramaterin uzunluğundan buffer büyük.

-veya-

0'dan size küçüktür.

-veya-

size değeri, parametresinin değerinden bufferoffset daha uzundur.

Temel alınan Socket kapalıdır.

-veya-

Ağdan okuma sırasında bir hata oluştu.

-veya-

Yuvaya erişilirken bir hata oluştu.

Açıklamalar

Önemli

Bu bir uyumluluk API'sidir. Yeni geliştirme için APM (Başlangıç/Bitiş) yöntemlerini kullanmanızı önermiyoruz. Bunun yerine, Görev tabanlı eşdeğerleri kullanın.

İşlemin AsyncCallbackBeginRead tamamlanması hakkında bildirim almak için uygulamasına bir geri çağırma geçirebilirsiniz. Temel alınan ağ yığını işlemi zaman uyumlu bir şekilde tamamlarsa, çağrısı sırasında geri çağırmanın BeginReadsatır içinde yürütüleceğini unutmayın. Bu durumda, CompletedSynchronously döndürülen IAsyncResult üzerindeki özelliği, yöntemin zaman uyumlu olarak tamamlandığını belirtmek için true olarak ayarlanır. yöntemine AsyncStateIAsyncResult geçirilen durum nesnesini almak için BeginRead özelliğini kullanın.

İşlemin BeginRead yöntemi çağrılarak EndRead tamamlanması gerekir. Genellikle yöntemi, sağlanan AsyncCallback temsilci tarafından çağrılır. EndRead işlem tamamlanana kadar çağıran iş parçacığını engeller.

İşlem, parametresi tarafından count belirtilen bayt sayısına kadar kullanılabilir olduğu kadar veri okur.

Uyarı

bir IOExceptionalırsanız, özelliğine InnerException bir neden SocketExceptionolup olmadığını denetleyin. Bu durumda, belirli bir hata kodunu almak için özelliğini kullanın ErrorCode .

Okuma ve yazma işlemleri eşitlemeye gerek kalmadan sınıfın bir örneğinde NetworkStream aynı anda gerçekleştirilebilir. Yazma işlemleri için benzersiz bir iş parçacığı ve okuma işlemleri için benzersiz bir iş parçacığı olduğu sürece, okuma ve yazma iş parçacıkları arasında çapraz girişim olmaz ve eşitleme gerekmez.

Şunlara uygulanır

Ayrıca bkz.