帮帮我啊,实在是不知道该怎么弄了啊

loyalzu 2003-10-02 10:33:30
我用一个线程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%了?
能帮帮我吗?谢谢了
...全文
20 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Skt32 2003-10-03
  • 打赏
  • 举报
回复

while()
{
...
Sleep(10);
}
tolixiaohui 2003-10-02
  • 打赏
  • 举报
回复
while
肯定占资源了

gzing!
mme 2003-10-02
  • 打赏
  • 举报
回复
你用while(){}当然会占用很多资源啦。在while循环里面加一句Sleep(1);就可以少占用cpu资源了。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧