NetworkStream.EndWrite(IAsyncResult) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Obsługuje koniec asynchronicznego zapisu.
public:
override void EndWrite(IAsyncResult ^ asyncResult);
public override void EndWrite (IAsyncResult asyncResult);
override this.EndWrite : IAsyncResult -> unit
Public Overrides Sub EndWrite (asyncResult As IAsyncResult)
Parametry
- asyncResult
- IAsyncResult
Element IAsyncResult reprezentujący wywołanie asynchroniczne.
Wyjątki
Parametr asyncResult
to null
.
Socket Podstawowy element jest zamknięty.
-lub- Wystąpił błąd podczas zapisywania w sieci.
-lub- Wystąpił błąd podczas uzyskiwania dostępu do gniazda.
Element NetworkStream jest zamknięty.
Przykłady
W poniższym przykładzie myWriteCallback
kodu podano BeginWrite metodę wywołania zwrotnego. EndWrite jest implementowany w myWriteCallback
celu ukończenia asynchronicznego wywołania zapisu rozpoczętego przez BeginWrite.
// Example of EndWrite
static void myWriteCallBack( IAsyncResult^ ar )
{
NetworkStream^ myNetworkStream = safe_cast<NetworkStream^>(ar->AsyncState);
myNetworkStream->EndWrite( ar );
}
// Example of EndWrite
public static void myWriteCallBack(IAsyncResult ar){
NetworkStream myNetworkStream = (NetworkStream)ar.AsyncState;
myNetworkStream.EndWrite(ar);
}
' Example of EndWrite
Public Shared Sub myWriteCallBack(ar As IAsyncResult)
Dim myNetworkStream As NetworkStream = CType(ar.AsyncState, NetworkStream)
myNetworkStream.EndWrite(ar)
End Sub
Uwagi
EndWrite kończy operację wysyłania asynchronicznego uruchomioną w pliku BeginWrite.
Przed wywołaniem BeginWritemetody należy utworzyć metodę wywołania zwrotnego, która implementuje delegata AsyncCallback . Ta metoda wywołania zwrotnego jest wykonywana w osobnym wątku i jest wywoływana przez system po BeginWrite powrocie. Metoda wywołania zwrotnego musi akceptować zwrócone IAsyncResult z BeginWrite metody jako parametr.
W metodzie wywołania zwrotnego wywołaj AsyncState właściwość parametru IAsyncResult
, aby uzyskać NetworkStreamwartość . Po uzyskaniu metody można wywołać EndWrite metodę NetworkStream, aby pomyślnie ukończyć operację wysyłania i zwrócić liczbę wysłanych bajtów.
Metoda EndWrite blokuje do momentu wysłania żądanej liczby bajtów.
Uwaga
Jeśli otrzymasz obiekt IOException, sprawdź InnerException właściwość , aby określić, czy została spowodowana przez SocketExceptionelement . Jeśli tak, użyj ErrorCode właściwości , aby uzyskać określony kod błędu i zapoznaj się z dokumentacją kodu błędu interfejsu API Windows Sockets w wersji 2, aby uzyskać szczegółowy opis błędu.