C语言自定义消息函数的等待怎么写?

发布网友 发布时间:2022-04-24 19:10

我来回答

5个回答

热心网友 时间:2023-10-05 09:25

消息队列的等待就是GetMessage,没办法自己写,除非你打算改Windows本身。这个函数如果没有消息进来就会释放CPU,如果不希望等待用PeekMessage。消息循环的格式是固定的。

热心网友 时间:2023-10-05 09:25

使用标准的消息循环就行了,不要多加其他的hook就没有效率问题。

windows库函数的读取消息队列函数就自带了阻塞和挂起功能,让消息循环尽可能快的进入读取下一个消息就是在提高你自身程序的效率。
操作系统中while(1)这种循环是非常消耗cpu资源的,而sleep等挂起操作即可释放当前线程,转而去处理其他线程。是主动出让cpu资源的策略。
你可以试试程序中写while(1);和while(1) sleep(100);两种都是阻塞,但是打开任务管理器看cpu占用率就知道那个更好了。

热心网友 时间:2023-10-05 09:26

CPU不会停,不会快,也不会慢,不存在省不省的问题。只存在CPU工作时间这个蛋糕,你的应用程序和其他应用程序及操作系统,谁分多少的问题。
主动权在操作系统手里,没消息就是操作系统在运行。你只需要响应系统消息,处理完及时返回就是最省的方式。追问我就是想找一个方法,让我的应用程序占用的资源更少,不是一定要和其他应用抢CPU。

热心网友 时间:2023-10-05 09:26

用了Sleep函数,在设定时间结束之前,当前线程就会一直停留在这里,直到时间到了,才继续往下执行

热心网友 时间:2023-10-05 09:27

这个不太清楚已经再看一下

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com