我有一个异步套接字应用程序,我正在尝试设置它以更好地处理异常。当捕获到套接字异常时,我会关闭套接字并将它们带回“连接”屏幕,在该屏幕上它会尝试重新连接套接字。问题是 - 尝试重新连接时,我收到一个错误,表明当前套接字已被处理。
当我尝试重新连接时,有没有办法检查套接字是否已被处理,如果是,则重新实例化套接字?
catch (Exception e)
{
ShutDownAfterException();
Console.WriteLine(e.ToString());
Console.WriteLine("From ReceiveCallback");
}
private void ShutDownAfterException()
{
Client.Shutdown(SocketShutdown.Both);
Client.Close();
Client = null;
Stop();
Application.Current.Dispatcher.BeginInvoke(
DispatcherPriority.Background,
new Action(() => Messenger.Default.Send<NavigateMessage>(new NavigateMessage(ConnectViewModel.ViewName, this))));
}