Freigeben über


PipeStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) Methode

Definition

Startet einen asynchronen Lesevorgang.

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);
[System.Security.SecurityCritical]
public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state);
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
[<System.Security.SecurityCritical>]
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

Parameter

buffer
Byte[]

Der Puffer, in den Daten gelesen werden sollen.

offset
Int32

Der Byteoffset, in buffer dem mit dem Lesen begonnen werden soll.

count
Int32

Die maximale Anzahl der zu lesenden Bytes.

callback
AsyncCallback

Die Methode, die aufgerufen werden soll, wenn der asynchrone Lesevorgang abgeschlossen ist.

state
Object

Ein vom Benutzer bereitgestelltes Objekt, das diese spezielle asynchrone Leseanforderung von anderen Anforderungen unterscheidet.

Gibt zurück

Ein IAsyncResult Objekt, das auf den asynchronen Lesevorgang verweist.

Attribute

Ausnahmen

buffer ist null.

offset ist kleiner als 0.

- oder -

count ist kleiner als 0.

count ist größer als die Anzahl der in buffer.

Das Rohr ist geschlossen.

Die Pipe unterstützt keine Lesevorgänge.

Die Leitung ist getrennt, wartet auf die Verbindung, oder der Ziehpunkt wurde nicht festgelegt.

Die Pfeife ist unterbrochen, oder ein anderer E/A-Fehler ist aufgetreten.

Hinweise

Übergeben Sie das zurückgegebene IAsyncResult Objekt an die EndRead Methode, um zu bestimmen, wie viele Bytes gelesen wurden, und um Betriebssystemressourcen freizugeben, die zum Lesen verwendet werden. EndReadmuss einmal für jeden Anruf aufgerufen werden.BeginRead Dies kann entweder im gleichen Code erfolgen, der aufgerufen BeginRead wird, oder in einem Rückruf, der BeginReadan die Übergeben wird.

Verwenden Sie die CanRead Eigenschaft, um zu bestimmen, ob das aktuelle PipeStream Objekt Lesevorgänge unterstützt.

Wenn die Pipe geschlossen oder ein ungültiges Argument übergeben BeginReadwird, werden die entsprechenden Ausnahmen sofort ausgelöst. Fehler, die während einer asynchronen Leseanforderung auftreten, treten im Threadpoolthread auf, der die Anforderung ausführt. Die Ausnahmen werden ausgelöst, wenn der Code die EndRead Methode aufruft.

Gilt für: