NetworkStream.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.
'den zaman uyumsuz bir okuma başlatır NetworkStream.
public:
override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int size, AsyncCallback ^ callback, System::Object ^ state);
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 size, 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 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, size As Integer, callback As AsyncCallback, state As Object) As 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[]
dosyasından okunan NetworkStreamverileri depolamak için bellekteki konum olan tür Byte dizisi.
- offset
- Int32
buffer
Verileri depolamaya başlamak için konumu.
- sizecount
- Int32
'den NetworkStreamokunacak bayt sayısı.
- callback
- AsyncCallback
Tamamlandığında AsyncCallback yürütülen BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) temsilci.
- state
- Object
Kullanıcı tanımlı ek verileri içeren bir nesne.
Döndürülenler
IAsyncResult Zaman uyumsuz çağrıyı temsil eden bir.
Özel durumlar
buffer
parametresidirnull
.
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
, parametresinin buffer
değeri eksi değerinden offset
büyüktür.
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.
Kapalı NetworkStream .
Açıklamalar
Önemli
Bu bir uyumluluk API'sidir, yeni geliştirme için APM (Başlangıç /Bitiş) yöntemlerini kullanmanızı önermeyiz. Bunun yerine, Görev tabanlı eşdeğerleri kullanın.
İşlemin AsyncCallbackBeginRead tamamlanması hakkında bildirim almak için uygulamasına uygulanan 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, döndürülen IAsyncResult üzerindeki özelliği yöntemin CompletedSynchronously zaman uyumlu olarak tamamlandığını belirtmek için olarak ayarlanırtrue
. yöntemine AsyncState geçirilen durum nesnesini almak için BeginRead özelliğini IAsyncResult kullanın.
İşlemin BeginRead yöntemi çağrılarak EndRead tamamlanması gerekir. Yöntem genellikle 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 size
belirtilen bayt sayısına kadar mümkün olduğunca çok veri okur.
Not
bir alırsanız IOException, özelliğini denetleyerek InnerException bunun nedeninin bir SocketExceptionolup olmadığını belirleyin. 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.