阅读:1322回复:8
关于事件通知
驱动中使用事件通知,应用程序使用多线程,是不是很占系统资源?
我的程序cpu占了90%. |
|
沙发#
发布于:2004-09-23 21:24
哪有那么夸张?
|
|
板凳#
发布于:2004-09-23 21:26
驱动中使用事件通知,应用程序使用多线程,是不是很占系统资源? 肯定是你的代码有问题 |
|
|
地板#
发布于:2004-09-24 09:07
我也遇到过类似的问题,不知道什么这么耗资源!
可能是循环等待吗事件通知耗资源吗?或者如果开辟的内存大的话也比较耗资源,但是应该不耗cpu的吧? 我也想知道,大家讨论一下嘛!楼主解决了麻烦说一下!谢谢! |
|
地下室#
发布于:2004-09-24 09:36
弱弱得问:如何等待事件的发生,是用WaitForSingleObject吗?
我在C++Builder下使用之,好像不能等待啊,怎么回事?谢谢 |
|
5楼#
发布于:2004-09-24 11:11
如果频繁在用户态和核心态切换,比较耗系统资源。
|
|
6楼#
发布于:2004-09-24 15:50
谢谢!该这样避免频繁在用户态和核心态切换呢?这种频繁的切换可能出现在什么地方?
我觉得可能使这个原因。 在多线程的while等待中,不停的访问DeviceControl。 但是该如何避免呢? |
|
7楼#
发布于:2004-09-24 16:34
while(继续循环)
{ rt = waitfor...obj(event_handle,...,timeout_if_need); swtich(rt) { case obj_0: do_somthing(); break; case timeout: ... } } |
|
8楼#
发布于:2004-09-24 18:18
谢谢!解决了
WaitForSingleObject(m_hEvent,ttt); 我原先将第二个参数设为0,现在改为10,cpu差不多8%,偶尔会高一下。 |
|