自己写的驱动在应用中打开,应用程序界面刷新很慢

papapa123123 2009-03-31 10:13:25
这可能是什么原因,我的驱动中就SetEvent给应用.驱动中有个IST.不知道为什么会这样!!
用串口调试 ,发现IST在没有中断产生时 是阻塞在WaitForSingleObject()这里的。。。。
调试信息正常。
开始怀疑是不是要设置下IST的优先级,但是又觉得WaitForSingleObject这个已经在等了,似乎不需要。
应用程序中打开该驱动,好像觉得影响了应用程序主线程?
...全文
169 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
papapa123123 2009-04-04
  • 打赏
  • 举报
回复
呵呵 问题解决了。。没有用事件了。用消息,结果比用事件效果理想多了。
WatiForSingleObject放在application 中的定时器中。这应该不会卡。
morris88 2009-04-03
  • 打赏
  • 举报
回复
既然已经 WaitForSingleObject,那线程自然就 waiting...
AlexChan1981 2009-04-03
  • 打赏
  • 举报
回复
同意5楼的观点,采用多线程
wolong98 2009-04-03
  • 打赏
  • 举报
回复
应用程序最好开个线程去读写驱动,不然应用程序跟着驱动一起WaitForSingleObject, 那肯定很卡~
paul_chao 2009-04-03
  • 打赏
  • 举报
回复
樓主 Application 中的 WatiForSingleObject 是放在哪呢?? 是 CreateThread 後, 放在 Thread 內, 還是放在給 GWES 呼叫的 call back function WndProc 內??

若是放在 WndProc 內, 您的 GWES 相關處理全部都會被影響.

Paul, Chao @ Techware
papapa123123 2009-03-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xajhuang 的回复:]
在你线程的循环里面加上Sleep,我估计你驱动里面有线程不停地在while,有没有通过Sleep释放执行权利,导致系统运行很慢。
[/Quote]
有WaitForSingleObject(),不sleep没问题的.

问题找到了..我在应用中 打开驱动中的事件后,速度就慢了。不打开驱动中的事件应用很正常。。 不知道这是为什么?
xajhuang 2009-03-31
  • 打赏
  • 举报
回复
在你线程的循环里面加上Sleep,我估计你驱动里面有线程不停地在while,有没有通过Sleep释放执行权利,导致系统运行很慢。
papapa123123 2009-03-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xqhrs232 的回复:]
应用怎么知道你的事件的?有没用有名称的事件?
[/Quote]
有事件名称,不然应用收不到!
简单做了个应用测试,这个事件是可以接到的。但是程序界面运行很慢,似乎应用的主线程受到影响。我再应用了用定时器检测的 间隔500ms检测一次事件。明显这个不会影响啊。
xqhrs232 2009-03-31
  • 打赏
  • 举报
回复
应用怎么知道你的事件的?有没用有名称的事件?

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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