c#中窗口的切换引起卡机或死机是什么原因
1个回答
展开全部
不知道你懂不懂线程,一句话就是:你的窗口的主线程在执行任务没有执行完,你的切换必须等任务结束后才会执行,你以为挂了,只是还没有到那一步而已
解释一下
1、你的窗口在执行一段代码,比如一千万次for循环,他在主线程中(或者你可以认为是一个任务队列)执行,没有执行完他就不能执行后面操作
2、这个时候你要切换窗口,那么会记录你的操作,放在主线程中,等待前面的任务结束后执行这个任务,但是前面的必须长时间等待,所以看起来就死掉了
3、解决方法:
a、异步委托、把你的方法封装到委托对象里去用BeginInvoke方法调用这个委托去执行,这样他不会占用主线程,而是单独用一个其他的线程去做这件事情
b、线程队列、Thread类的静态方法叫什么Quene忘记了挺长的一个名字,原理和上面一样
解释一下
1、你的窗口在执行一段代码,比如一千万次for循环,他在主线程中(或者你可以认为是一个任务队列)执行,没有执行完他就不能执行后面操作
2、这个时候你要切换窗口,那么会记录你的操作,放在主线程中,等待前面的任务结束后执行这个任务,但是前面的必须长时间等待,所以看起来就死掉了
3、解决方法:
a、异步委托、把你的方法封装到委托对象里去用BeginInvoke方法调用这个委托去执行,这样他不会占用主线程,而是单独用一个其他的线程去做这件事情
b、线程队列、Thread类的静态方法叫什么Quene忘记了挺长的一个名字,原理和上面一样
迪凯特科技(北京)有限公司
2023-07-28 广告
2023-07-28 广告
单片机串口通信数据丢失的原因可能如下:1. 按键通过串口发送对应命令,第一次按按键串口发送的指令正确且能把数据正确的显示出来,在第二次按按键串口发送的指令出现丢失的状况,可能是因为串口通信的波特率设置不正确。2. 如果单片机和外部设备的波特...
点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询