NegotiateStream.EndRead(IAsyncResult) Methode

Definitie

Hiermee wordt een asynchrone leesbewerking beëindigd die is gestart met een aanroep naar BeginRead(Byte[], Int32, Int32, AsyncCallback, Object).

public:
 override int EndRead(IAsyncResult ^ asyncResult);
public override int EndRead(IAsyncResult asyncResult);
override this.EndRead : IAsyncResult -> int
Public Overrides Function EndRead (asyncResult As IAsyncResult) As Integer

Parameters

asyncResult
IAsyncResult

Een IAsyncResult exemplaar dat wordt geretourneerd door een aanroep naar BeginRead(Byte[], Int32, Int32, AsyncCallback, Object).

Retouren

Een Int32 waarde die het aantal bytes aangeeft dat uit de onderliggende stroom is gelezen.

Uitzonderingen

asyncResult is null.

Het asyncResult is niet gemaakt door een aanroep naar BeginRead(Byte[], Int32, Int32, AsyncCallback, Object).

Er is geen leesbewerking in behandeling om te voltooien.

– of –

Er is geen verificatie opgetreden.

De leesbewerking is mislukt.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u een asynchrone leesbewerking beëindigt. Zie voor een voorbeeld van het starten van de bewerking BeginRead.

private static void EndReadCallback(ClientState cState, int bytes)
{
    NegotiateStream authStream = (NegotiateStream)cState.AuthenticatedStream;
    // Read the client message.
    try
    {
        cState.Message.Append(Encoding.UTF8.GetChars(cState.Buffer, 0, bytes));
        if (bytes != 0)
        {
            Task<int> readTask = authStream.ReadAsync(cState.Buffer, 0, cState.Buffer.Length);
            readTask
                .ContinueWith(task => { EndReadCallback(cState, task.Result); })
                .Wait();

            return;
        }
    }
    catch (Exception e)
    {
        // A real application should do something
        // useful here, such as logging the failure.
        Console.WriteLine("Client message exception:");
        Console.WriteLine(e);
        return;
    }
    IIdentity id = authStream.RemoteIdentity;
    Console.WriteLine("{0} says {1}", id.Name, cState.Message.ToString());
}

Opmerkingen

Als de bewerking niet is voltooid, wordt deze methode geblokkeerd totdat de bewerking is voltooid.

Gebruik de Read methode om deze bewerking synchroon uit te voeren.

U kunt deze methode pas aanroepen als u bent geverifieerd. Als u wilt verifiëren, roept u een van de AuthenticateAsClientmethoden , , AuthenticateAsClientAsync, AuthenticateAsServerAsyncBeginAuthenticateAsClientAuthenticateAsServerof BeginAuthenticateAsServer methoden aan.

Van toepassing op