NetworkStream.ReadAsync Metod

Definition

Överlagringar

Name Description
ReadAsync(Memory<Byte>, CancellationToken)

Läser data från NetworkStream och lagrar dem i ett byteminnesintervall som en asynkron åtgärd.

ReadAsync(Byte[], Int32, Int32, CancellationToken)

Läser data från NetworkStream och lagrar dem till ett angivet intervall för en bytematris som en asynkron åtgärd.

ReadAsync(Memory<Byte>, CancellationToken)

Läser data från NetworkStream och lagrar dem i ett byteminnesintervall som en asynkron åtgärd.

public override System.Threading.Tasks.ValueTask<int> ReadAsync(Memory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
override this.ReadAsync : Memory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Overrides Function ReadAsync (buffer As Memory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Parametrar

buffer
Memory<Byte>

Bufferten som data ska skrivas till.

cancellationToken
CancellationToken

Token som ska övervakas för annulleringsbegäranden.

Returer

En ValueTask<TResult> som representerar den asynkrona läsåtgärden. Värdet för egenskapen Result innehåller det totala antalet byte som läse in buffer mellan noll (0) och antalet begärda byte. Resultatvärdet är noll (0) endast om noll byte begärdes eller om inga fler byte är tillgängliga eftersom peer-socketen utförde en graciös avstängning. Om noll byte begärs kan läsåtgärder slutföras omedelbart eller kanske inte slutföras förrän minst en byte är tillgänglig (men utan att använda några data).

Undantag

Stöder NetworkStream inte läsning.

Ett fel uppstod vid åtkomst till socketen.

-eller-

Det går inte att läsa från nätverket.

Annulleringstoken avbröts. Det här undantaget lagras i den returnerade aktiviteten.

Kommentarer

Den här metoden läser så mycket data som är tillgängligt i buffer och returnerar antalet byte som har lästs.

Note

Kontrollera om NetworkStream är läsbart genom att anropa egenskapen CanRead . Om du försöker läsa från en NetworkStream som inte är läsbar får du en InvalidOperationException.

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 egenskapen ErrorCode för att hämta den specifika felkoden och referera till felkoden Windows Sockets version 2 API för en detaljerad beskrivning av felet.

Gäller för

ReadAsync(Byte[], Int32, Int32, CancellationToken)

Läser data från NetworkStream och lagrar dem till ett angivet intervall för en bytematris som en asynkron åtgärd.

public:
 override System::Threading::Tasks::Task<int> ^ ReadAsync(cli::array <System::Byte> ^ buffer, int offset, int size, System::Threading::CancellationToken cancellationToken);
public override System.Threading.Tasks.Task<int> ReadAsync(byte[] buffer, int offset, int size, System.Threading.CancellationToken cancellationToken);
abstract member ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
override this.ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
override this.ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
Public Overrides Function ReadAsync (buffer As Byte(), offset As Integer, size As Integer, cancellationToken As CancellationToken) As Task(Of Integer)

Parametrar

buffer
Byte[]

Bufferten som data ska skrivas till.

offset
Int32

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

countsize
Int32

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

cancellationToken
CancellationToken

Token som ska övervakas för annulleringsbegäranden.

Returer

En uppgift som representerar den asynkrona läsåtgärden. Värdet för egenskapen Result innehåller det totala antalet byte som läse in buffer mellan noll (0) och antalet begärda byte. Resultatvärdet är noll (0) endast om noll byte begärdes eller om inga fler byte är tillgängliga eftersom peer-socketen utförde en graciös avstängning. Om noll byte begärs kan läsåtgärder slutföras omedelbart eller kanske inte slutföras förrän minst en byte är tillgänglig (men utan att använda några data).

Undantag

Stöder NetworkStream inte läsning.

Ett fel uppstod vid åtkomst till socketen.

-eller-

Det går inte att läsa från nätverket.

Annulleringstoken avbröts. Det här undantaget lagras i den returnerade aktiviteten.

Kommentarer

Den här metoden läser in data i buffer och returnerar antalet byte som har lästs. Åtgärden ReadAsync läser så mycket data som är tillgängligt, upp till det antal byte som anges av parametern count .

Note

Kontrollera om NetworkStream är läsbart genom att anropa egenskapen CanRead . Om du försöker läsa från en NetworkStream som inte är läsbar får du en InvalidOperationException.

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 egenskapen ErrorCode för att hämta den specifika felkoden och referera till felkoden Windows Sockets version 2 API för en detaljerad beskrivning av felet.

Den här metoden lagrar i aktiviteten som returnerar alla undantag som inte används som metodens synkrona motsvarighet kan utlösa. Om ett undantag lagras i den returnerade aktiviteten utlöses undantaget när aktiviteten väntar. Användningsfel, till exempel ArgumentException, genereras fortfarande synkront. De lagrade undantagen finns i undantagen som genereras av Read(Byte[], Int32, Int32).

Gäller för