|
|
1
14
问题是您的消息循环,它会消耗100%的CPU周期,因为您使用PeekMessage()。Windows知道如何保持钩子活动,即使您不轮询消息,也可以使用GetMessage()解决问题。使用睡眠(1)也能解决你的问题,但在这里没有必要。 Why must SetWindowsHookEx be used with a windows message queue |
|
|
2
6
http://msdn.microsoft.com/en-us/library/ms644990.aspx :
所以你必须放在一个动态链接库里。确切地说,如果您想同时支持32位和64位平台,就必须实现两个DLL:一个32位和64位DLL。但为什么呢?怎么做
你给
用户32.dll
请求注入你的
用户32.dll
不能工作。
|
|
|
3
3
而不是:
切换到:
这将允许你的应用程序继续处理队列中的所有消息,直到它为空(比如没有睡眠), 然后 在应用程序处于“空闲”状态时放弃一些CPU时间。 |
|
|
4
3
关于循环-可以这样修改:
|
|
|
user107586 · 如何处理等待句柄不会导致无限循环? 1 年前 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
BenjiFB · C#内存缓存:在一次操作中追加到列表? 1 年前 |
|
|
András Takács · Python多线程问题 2 年前 |
|
|
András Takács · Python多线程错误 2 年前 |