, (, ), Begin/End . ManualResetEvent " ". AsyncWaitHandle . .
Example:
var asyncResult = socket.BeginAccept(null, null);
if(WaitHandle.WaitAny(new[] { exit, asyncResult.AsyncWaitHandle }) == 0)
return;
var connection = socket.EndAccept(asyncResult);
And in your main method, when you want to exit:
exit.Set();
source
share