Ich habe den folgenden Code verwendet, um Daten asynchron zu senden, aber ich habe bemerkt, dass die Verwendung von WaitOne im AsyncWaitHandle, das ich von asyncRes wartet überhaupt nicht. Ich habe MSDN überprüft und es sagt, ich sollte ein ManualResetEvent verwenden.
...
var asyncRes = _socket.BeginSend(encodedFrame, 0, encodedFrame.Length, SocketFlags.None, sendCallback, _socket);
...
var success = asyncRes.AsyncWaitHandle.WaitOne(_timeout, true);
...
private void sendCallback(IAsyncResult ar)
{
_socket.EndSend(ar);
}
MSDN sagt auch in IAsyncResult:
AsyncWaitHandle: Ruft ein WaitHandle ab, das verwendet wird, um auf den Abschluss einer asynchronen Operation zu warten.
Warum kann ich sie also nicht für diesen Zweck verwenden?
Ich danke Ihnen.
0 Stimmen
Möglicherweise tritt die Zeitüberschreitung auf?
0 Stimmen
Nö. Die Zeitüberschreitung tritt nicht auf