当前位置:  开发笔记 > 编程语言 > 正文

Application-> ProcessMessage有什么作用?

如何解决《Application->ProcessMessage有什么作用?》经验,为你挑选了1个好方法。

我正在将C++应用程序转换为C#,我在代码库中的许多地方遇到过这一行代码:

Application->ProcessMessages()

我找到了这个链接:http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/Forms_TApplication_ProcessMessages.html

其中说ProcessMessages()的如下:

调用ProcessMessages以允许应用程序处理当前在消息队列中的消息.ProcessMessages循环Windows消息循环,直到它为空,然后将控制权返回给应用程序.

但什么是"消息",什么是"消息队列"?如何添加消息?进行了哪种处理?

我似乎无法找到任何具体的解释,这是什么,这很重要,因为我不知道这个方法调用的C#/ .NET等价物,或者它是某种形状或方式的功能烘焙到.NET,我不需要做任何事情?

使用C#标记了问题,因为我对它的.NET等价物最感兴趣,但该线程的真正意图仅仅是了解C++的作用.



1> Patrick Hofm..:

.NET等价物是Application.DoEvents().

消息泵是Win32消息传递系统,实际上是Windows本身的通信机制.如果移动鼠标,单击按钮等,将发送消息.一方(您的应用程序,Windows本身等)能够处理它,并处理下一条消息.消息泵不断发送放入队列的消息.

Application.DoEvents() 将为您的同步代码提供处理这些事件的机会,但最好使您的代码异步,这样就不会阻止UI线程,并且可以正常处理消息而不会有任何延迟.

Application.DoEvents()除非你真的知道自己在做什么并且知道它会带来麻烦,否则不要使用.

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有