”一个封锁操作被对 WSACancelBlockingCall 的调用中断“。解决办法

本文详细介绍了在服务端通过新开进程监听客户端连接请求时,遇到关闭时提示‘封锁操作被对WSACancelBlockingCall的调用中断’的问题,并提供了解决方案。通过在关闭前为新进程添加进程名并使用Abort方法,可以避免该错误发生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

为了防止界面卡死,在服务端我新开了一个进程来监听客户端的连接请求,在关闭的时候却却提示“一个封锁操作被对 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();
        
        }





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值