请教是不是被 rt_thread_suspend 挂起的任务会因为延时到而被唤醒?
while(rt_thread_suspend(clean_thread)==RT_EOK);printf("挂起 clean_thread\n");
串口显示挂起,但 clean_thread 线程仍在运行,只有很小可能被挂起。 是我写错了应该是 while(rt_thread_suspend(clean_thread)!=RT_EOK); 还是有问题
while(rt_thread_suspend(clean_thread)!=RT_EOK)
{
rt_thread_delay(1);
printf("wait suspend\n");
}
串口显示
wait suspend
wait suspend
wait suspend
wait suspend
wait suspend
wait suspend
挂起 clean_thread
为什么要这么多次才能挂起 rt_thread_suspend本身并不会做任务切换,这个在编程指南中应该就有说明。编程指南中也提到,这个API并不建议用户直接调用。 我发现只有当被挂起线程延时结束时 rt_thread_suspend 才能把它挂起
页:
[1]