NetworkStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) Metod

Definition

Påbörjar en asynkron läsning från NetworkStream.

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 size, AsyncCallback callback, object state);
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

Parametrar

buffer
Byte[]

En matris av typen Byte som är platsen i minnet för att lagra data som lästs NetworkStreamfrån .

offset
Int32

Platsen i buffer för att börja lagra data.

size
Int32

Antalet byte som ska läsas från NetworkStream.

state
Object

Ett objekt som innehåller ytterligare användardefinierade data.

Returer

En IAsyncResult som representerar det asynkrona anropet.

Undantag

Parametern buffer är null.

Parametern offset är mindre än 0.

-eller-

Parametern offset är större än längden på buffer paramatern.

-eller-

Är size mindre än 0.

-eller-

size är större än längden buffer på minus värdet för parameternoffset.

Den underliggande Socket är stängd.

-eller-

Det uppstod ett fel vid läsning från nätverket.

-eller-

Ett fel uppstod vid åtkomst till socketen.

Kommentarer

Important

Det här är ett kompatibilitets-API. Vi rekommenderar inte att du använder APM-metoderna (Begin/End) för ny utveckling. Använd i stället de aktivitetsbaserade motsvarigheterna.

Du kan skicka ett återanrop som implementeras AsyncCallback till BeginRead för att få ett meddelande om att åtgärden har slutförts. Observera att om den underliggande nätverksstacken slutför åtgärden synkront körs återanropet infogat under anropet till BeginRead. I det här fallet CompletedSynchronously anges egenskapen för den returnerade IAsyncResult till för true att indikera att metoden slutfördes synkront. AsyncState Använd egenskapen för IAsyncResult att hämta tillståndsobjektet som skickas BeginRead till metoden.

Åtgärden BeginRead måste slutföras genom att anropa EndRead metoden. Metoden anropas vanligtvis av det angivna AsyncCallback ombudet. EndRead blockerar den anropande tråden tills åtgärden har slutförts.

Åtgärden läser så mycket data som är tillgängligt, upp till det antal byte som anges av parametern count .

Note

Om du får en IOExceptionkontrollerar du InnerException egenskapen för att avgöra om den orsakades av en SocketException. I så fall använder du ErrorCode egenskapen för att hämta den specifika felkoden.

Läs- och skrivåtgärder kan utföras samtidigt på en instans av klassen utan behov av NetworkStream synkronisering. Så länge det finns en unik tråd för skrivåtgärderna och en unik tråd för läsåtgärderna, kommer det inte att finnas någon korsinterferens mellan läs- och skrivtrådar och ingen synkronisering krävs.

Gäller för

Se även