NegotiateStream.EndRead(IAsyncResult) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
çağrısıyla BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)başlatılan zaman uyumsuz okuma işlemini sonlandırır.
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
Parametreler
- asyncResult
- IAsyncResult
IAsyncResult çağrısı BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)tarafından döndürülen bir örnek.
Döndürülenler
Int32 Temel alınan akıştan okunan bayt sayısını belirten bir değer.
Özel durumlar
asyncResult, null değeridir.
asyncResult, çağrısı BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)tarafından oluşturulmadı.
Tamamlanmasını bekleyen bir okuma işlemi yok.
-veya-
Kimlik doğrulaması gerçekleşmedi.
Okuma işlemi başarısız oldu.
Örnekler
Aşağıdaki kod örneği, zaman uyumsuz okuma işlemini sonlandırmayı gösterir. İşlemi başlatmayı gösteren bir örnek için bkz 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());
}
Açıklamalar
İşlem tamamlanmadıysa, bu yöntem tamamlanana kadar engeller.
Bu işlemi zaman uyumlu olarak gerçekleştirmek için yöntemini kullanın Read .
Kimlik doğrulaması başarılı olana kadar bu yöntemi çağıramazsınız. Kimlik doğrulaması yapmak için , , AuthenticateAsClientAsync, BeginAuthenticateAsClient, AuthenticateAsServerAsyncAuthenticateAsServerveya BeginAuthenticateAsServer yöntemlerinden birini AuthenticateAsClientçağırın.