NegotiateStream.EndRead(IAsyncResult) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Avslutar en asynkron läsåtgärd som startades med ett anrop till 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
Parametrar
- asyncResult
- IAsyncResult
En IAsyncResult instans som returneras av ett anrop till BeginRead(Byte[], Int32, Int32, AsyncCallback, Object).
Returer
Ett Int32 värde som anger antalet byte som lästs från den underliggande strömmen.
Undantag
asyncResult är null.
asyncResult skapades inte av ett anrop till BeginRead(Byte[], Int32, Int32, AsyncCallback, Object).
Det finns ingen väntande läsåtgärd att slutföra.
-eller-
Autentiseringen har inte inträffat.
Läsåtgärden misslyckades.
Exempel
I följande kodexempel visas hur du avslutar en asynkron läsåtgärd. Ett exempel som visar hur du startar åtgärden BeginReadfinns i .
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());
}
Kommentarer
Om åtgärden inte har slutförts blockeras den här metoden tills den gör det.
Använd metoden för Read att utföra den här åtgärden synkront.
Du kan inte anropa den här metoden förrän du har autentiserats. Om du vill autentisera AuthenticateAsClientanropar du någon av metoderna , AuthenticateAsClientAsync, BeginAuthenticateAsClient, AuthenticateAsServer, AuthenticateAsServerAsynceller BeginAuthenticateAsServer .