帮帮我啊,实在是不知道该怎么弄了啊
我用一个线程a来
检查硬件是否采集完成,
然后用一个线程b来进行读取硬件cache中的数据,因为还有个数据处理的线程c(主要是把读到的数据进行处理,并且画出图来),
线程b,c我用临界区来进行线程同步,而a,b我用的是事件,a 中也就是一个循环吧,如下
while(//没有结束)
{
if(//可以读取了)
Event.SetEvent();
}
b中则
while(//没有结束)
{
Event.lock()
EnterCriticalSection()
........
//读取数据
LeaveCriticalSection()
Event.unlock()
}
c中则是每隔20ms对数据进行处理
这里面应该写EntercriticalSetcion,leavecriticalSetcion吗?
为什么我的程序运行起来效率特别低,cpu占用率达到几乎100%了?
能帮帮我吗?谢谢了
问题点数:0、回复次数:3Top
1 楼tolixiaohui()回复于 2003-10-02 10:52:20 得分 0
while
肯定占资源了
gzing!Top
2 楼mme(dog)回复于 2003-10-02 19:38:48 得分 0
你用while(){}当然会占用很多资源啦。在while循环里面加一句Sleep(1);就可以少占用cpu资源了。Top
3 楼Skt32(荒城之月)回复于 2003-10-03 11:44:24 得分 0
while()
{
...
Sleep(10);
}Top




