1、主线程里开一个工作者线程,此工作线程里开定时器,定时通讯;
2、主线程定时器中断调用工作者线程。
给点意见?
18 个解决方案
#1
选1
#2
为什么要开定时器?Sleep(1000);
#3
开线程周期性做事情
#4
选1,功能独立点。
主线程定时器中断调用工作者线程。
------------
应该说主线程定时器里通知工作线程更准确点,要通知起码得要有个事件之类的,麻烦。
主线程定时器中断调用工作者线程。
------------
应该说主线程定时器里通知工作线程更准确点,要通知起码得要有个事件之类的,麻烦。
#5
主线程里开一个工作者线程,此工作线程里开定时器,定时通讯;
让工作线程有事就干事,没事就睡觉,不影响住线程,主线程主要检查工作线程的标记,进行处理
让工作线程有事就干事,没事就睡觉,不影响住线程,主线程主要检查工作线程的标记,进行处理
#6
那别的事情都不用干了
#7
在主线程里开一个线程,不停的接受消息
while(1)
{
while(读空消息)
{
}
Sleep(1000);
}
while(1)
{
while(读空消息)
{
}
Sleep(1000);
}
#8
线程里开定时器没什么问题的吧? 就当在主线程一样用?结束工作站线程的时候killtimer吗
#9
似乎是单片机里的做法 哈 应该也可以
#10
道理我懂的 就是不知道线程里开定时器 会不会有什么不好的? 总感觉线程不是个完整的东西
#11
定时器消息有一个问题就是,如果在处理一个WM_TIMER消息的时间超过1s的话,下一个WM_TIMER消息直到前一次处理完了才会产生,不知道楼主对于这种情况是否考虑到了,如果楼主忽略此种情况,整个定时器消息也不是不可吧!
#12
想了一晚上 线程里开定时器应该不是好办法 因为定时事件到了之后 程序还是在主线程里
还是线程里让它while(1)死循环那里比较好
还是线程里让它while(1)死循环那里比较好
#13
线程里面定时去操作串口撒,定时器和线程性质都差不多
#14
定时器一般都是主线程开吧,在定时器里设置一个开关,在线程读取数据后关闭开关就可以了
while(1)
{
if(开关)
{
。。。
开关=false;
}
}
while(1)
{
if(开关)
{
。。。
开关=false;
}
}
#15
最好是在线程中等有数据到达的时候再做,没数据的时候不占CPU资源
#16
在主线程里开一个线程,不停的接受消息
while(1)
{
while(读空消息)
{
}
Sleep(1000);
}
试了while(1)
程序关闭后会有内存泄漏 就是线程没关掉的原因 可是死循环里怎么关呢 线程又不能再接受消息了
#17
解决了 传递的参数里加上一个变量判断就可以了
#18
最好是在线程中等有数据到达的时候再做,没数据的时候不占CPU资源
#1
选1
#2
为什么要开定时器?Sleep(1000);
#3
开线程周期性做事情
#4
选1,功能独立点。
主线程定时器中断调用工作者线程。
------------
应该说主线程定时器里通知工作线程更准确点,要通知起码得要有个事件之类的,麻烦。
主线程定时器中断调用工作者线程。
------------
应该说主线程定时器里通知工作线程更准确点,要通知起码得要有个事件之类的,麻烦。
#5
主线程里开一个工作者线程,此工作线程里开定时器,定时通讯;
让工作线程有事就干事,没事就睡觉,不影响住线程,主线程主要检查工作线程的标记,进行处理
让工作线程有事就干事,没事就睡觉,不影响住线程,主线程主要检查工作线程的标记,进行处理
#6
为什么要开定时器?Sleep(1000);
那别的事情都不用干了
#7
在主线程里开一个线程,不停的接受消息
while(1)
{
while(读空消息)
{
}
Sleep(1000);
}
while(1)
{
while(读空消息)
{
}
Sleep(1000);
}
#8
开线程周期性做事情
#9
在主线程里开一个线程,不停的接受消息
while(1)
{
while(读空消息)
{
}
Sleep(1000);
}
#10
主线程里开一个工作者线程,此工作线程里开定时器,定时通讯;
让工作线程有事就干事,没事就睡觉,不影响住线程,主线程主要检查工作线程的标记,进行处理
道理我懂的 就是不知道线程里开定时器 会不会有什么不好的? 总感觉线程不是个完整的东西
#11
主线程里开一个工作者线程,此工作线程里开定时器,定时通讯;
让工作线程有事就干事,没事就睡觉,不影响住线程,主线程主要检查工作线程的标记,进行处理
道理我懂的 就是不知道线程里开定时器 会不会有什么不好的? 总感觉线程不是个完整的东西
定时器消息有一个问题就是,如果在处理一个WM_TIMER消息的时间超过1s的话,下一个WM_TIMER消息直到前一次处理完了才会产生,不知道楼主对于这种情况是否考虑到了,如果楼主忽略此种情况,整个定时器消息也不是不可吧!
#12
想了一晚上 线程里开定时器应该不是好办法 因为定时事件到了之后 程序还是在主线程里
还是线程里让它while(1)死循环那里比较好
还是线程里让它while(1)死循环那里比较好
#13
线程里面定时去操作串口撒,定时器和线程性质都差不多
#14
定时器一般都是主线程开吧,在定时器里设置一个开关,在线程读取数据后关闭开关就可以了
while(1)
{
if(开关)
{
。。。
开关=false;
}
}
while(1)
{
if(开关)
{
。。。
开关=false;
}
}
#15
最好是在线程中等有数据到达的时候再做,没数据的时候不占CPU资源
#16
在主线程里开一个线程,不停的接受消息
while(1)
{
while(读空消息)
{
}
Sleep(1000);
}
试了while(1)
程序关闭后会有内存泄漏 就是线程没关掉的原因 可是死循环里怎么关呢 线程又不能再接受消息了
#17
解决了 传递的参数里加上一个变量判断就可以了
#18
最好是在线程中等有数据到达的时候再做,没数据的时候不占CPU资源