kongan 发表于 2011-11-5 19:20:46

请教是不是被 rt_thread_suspend 挂起的任务会因为延时到而被唤醒?

while(rt_thread_suspend(clean_thread)==RT_EOK);
printf("挂起 clean_thread\n");

串口显示挂起,但 clean_thread 线程仍在运行,只有很小可能被挂起。

kongan 发表于 2011-11-5 19:42:05

是我写错了应该是 while(rt_thread_suspend(clean_thread)!=RT_EOK);

kongan 发表于 2011-11-5 19:49:07

还是有问题
                                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

为什么要这么多次才能挂起

ffxz 发表于 2011-11-5 21:00:14

rt_thread_suspend本身并不会做任务切换,这个在编程指南中应该就有说明。编程指南中也提到,这个API并不建议用户直接调用。

kongan 发表于 2011-11-5 21:05:03

我发现只有当被挂起线程延时结束时 rt_thread_suspend 才能把它挂起
页: [1]
查看完整版本: 请教是不是被 rt_thread_suspend 挂起的任务会因为延时到而被唤醒?