问题描述:
为了防止界面卡死,在服务端我新开了一个进程来监听客户端的连接请求,在关闭的时候却却提示“一个封锁操作被对 WSACancelBlockingCall 的调用中断”。
如图
具体错误代码: private void InitForm()
{
MyController = new ControllerManager(this);
/创建一个新的进程,以防界面卡死
new Thread(MyController.Load).Start();
}
注:MyController.Load()里面: Socket newClient = _tcpl.AcceptSocket();
就是这句话出错。
解决方式:为 new Thread(MyController.Load).Start();添加一个进程名,然后在窗口的关闭时间中Abort掉。
代码如下:Thread LoadThread= new Thread(MyController.Load);//创建一个新的进程,以防界面卡死
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
LoadThread.Abort();
}