c#中窗口的切换引起卡机或死机是什么原因

 我来答
KazeToTori
2016-06-04 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:74
采纳率:100%
帮助的人:39.5万
展开全部
不知道你懂不懂线程,一句话就是:你的窗口的主线程在执行任务没有执行完,你的切换必须等任务结束后才会执行,你以为挂了,只是还没有到那一步而已

解释一下
1、你的窗口在执行一段代码,比如一千万次for循环,他在主线程中(或者你可以认为是一个任务队列)执行,没有执行完他就不能执行后面操作
2、这个时候你要切换窗口,那么会记录你的操作,放在主线程中,等待前面的任务结束后执行这个任务,但是前面的必须长时间等待,所以看起来就死掉了
3、解决方法:
a、异步委托、把你的方法封装到委托对象里去用BeginInvoke方法调用这个委托去执行,这样他不会占用主线程,而是单独用一个其他的线程去做这件事情

b、线程队列、Thread类的静态方法叫什么Quene忘记了挺长的一个名字,原理和上面一样
迪凯特科技(北京)有限公司
2023-07-28 广告
单片机串口通信数据丢失的原因可能如下:1. 按键通过串口发送对应命令,第一次按按键串口发送的指令正确且能把数据正确的显示出来,在第二次按按键串口发送的指令出现丢失的状况,可能是因为串口通信的波特率设置不正确。2. 如果单片机和外部设备的波特... 点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式