• 全部
  • 问答

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

papapa123123 2009-03-31 10:13:25
这可能是什么原因,我的驱动中就SetEvent给应用.驱动中有个IST.不知道为什么会这样!!
用串口调试 ,发现IST在没有中断产生时 是阻塞在WaitForSingleObject()这里的。。。。
调试信息正常。
开始怀疑是不是要设置下IST的优先级,但是又觉得WaitForSingleObject这个已经在等了,似乎不需要。
应用程序中打开该驱动,好像觉得影响了应用程序主线程?
...全文
133 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
应用怎么知道你的事件的?有没用有名称的事件?
回复
发帖
嵌入开发(WinCE)
创建于2007-09-28

1.9w+

社区成员

硬件/嵌入开发 嵌入开发(WinCE)
申请成为版主
帖子事件
创建了帖子
2009-03-31 10:13
社区公告
暂无公告