static void ConnectCallback(IAsyncResult asyncres)
{
ConnectHelper hlp = asyncres.AsyncState as ConnectHelper;
lock (hlp.Mutex)
{
hlp.CallbackDone = true;
try
{
if( hlp.Client.Client != null)
hlp.Client.EndConnect(asyncres);
}
catch (SocketException)
{
// catch that away
}
if (hlp.DoCleanup)
{
asyncres.AsyncWaitHandle.Close();
if (hlp.Client is IDisposable)
((IDisposable)hlp.Client).Dispose();
hlp.Client = null;
}
}
}