Wince 加入线程之后死机

时间:2022-04-25 19:22:53
请教:在wince下开发了一个界面,在界面之下运行另外一个线程,但是导致死机
这个线程只有简单的while(1)语句

11 个解决方案

#1


线程里面不能是空循环,要不然会占用所有的CPU时间片,导致死机的。
你可以在线程的while里面添加sleep或者其他阻塞的函数

#2


while(1)把cpu占完啦,不想做什么里面也要加个Sleep(1)啊

#3


两位 LS 已经说的很清楚了,Sleep 语句是不能少的。

#4


但是我在里边加入了if判断语句,但是仍然出现死机状态,

#5


谢谢二楼的回复,

#6


引用 4 楼 stupid_ghost 的回复:
但是我在里边加入了if判断语句,但是仍然出现死机状态,


必须用 Sleep()

#7


知道了
但是现在出现另外一个问题,请教一下:
一个全局变量,我在界面消息响应中对其进行更改,而在一个线程中基于这个全局变量进行if判断,使用CMutex进行线程间消息同步,发现线程阻塞,请问这是为什么?

#8


CPU没时间处理其他事情了,没有SLEEP的话

#9


引用 7 楼 stupid_ghost 的回复:
知道了
但是现在出现另外一个问题,请教一下:
一个全局变量,我在界面消息响应中对其进行更改,而在一个线程中基于这个全局变量进行if判断,使用CMutex进行线程间消息同步,发现线程阻塞,请问这是为什么?


MUTEX 的确定用的没有问题?

或换其它的,如临界区之类的试试

#10


你还不如直接用个事件,然后需要线程处理就setevent,线程里面直接waitfor。
这样节省资源,又方便。

#11


谢谢楼上 的回复

#1


线程里面不能是空循环,要不然会占用所有的CPU时间片,导致死机的。
你可以在线程的while里面添加sleep或者其他阻塞的函数

#2


while(1)把cpu占完啦,不想做什么里面也要加个Sleep(1)啊

#3


两位 LS 已经说的很清楚了,Sleep 语句是不能少的。

#4


但是我在里边加入了if判断语句,但是仍然出现死机状态,

#5


谢谢二楼的回复,

#6


引用 4 楼 stupid_ghost 的回复:
但是我在里边加入了if判断语句,但是仍然出现死机状态,


必须用 Sleep()

#7


知道了
但是现在出现另外一个问题,请教一下:
一个全局变量,我在界面消息响应中对其进行更改,而在一个线程中基于这个全局变量进行if判断,使用CMutex进行线程间消息同步,发现线程阻塞,请问这是为什么?

#8


CPU没时间处理其他事情了,没有SLEEP的话

#9


引用 7 楼 stupid_ghost 的回复:
知道了
但是现在出现另外一个问题,请教一下:
一个全局变量,我在界面消息响应中对其进行更改,而在一个线程中基于这个全局变量进行if判断,使用CMutex进行线程间消息同步,发现线程阻塞,请问这是为什么?


MUTEX 的确定用的没有问题?

或换其它的,如临界区之类的试试

#10


你还不如直接用个事件,然后需要线程处理就setevent,线程里面直接waitfor。
这样节省资源,又方便。

#11


谢谢楼上 的回复