gpt4 book ai didi

c# - Windows 消息泵中的清理消息

转载 作者:太空狗 更新时间:2023-10-29 18:00:07 25 4
gpt4 key购买 nike

  1. 我不太了解 Windows Message Pump,但我猜事件是使用 Message Pump 触发的。

当我的 Web 浏览器控件导航到某些网站时,它会触发各种文档完成事件。在 WebBrowser_Document_Completed() 中获得我需要的内容后,我想忽略所有进一步的文档完成。

  1. 我该怎么办?

如果我在 Document_Completed(...) 中显示一个 MessageBox(),它会显示多条消息框,看起来它在并行线程中运行,但是当我调试它时,我发现它总是在主线程中运行。

  1. 另外两个线程是什么时候创建的?

此外,当我按下“关闭”时,它会关闭窗口,但该进程仍在后台运行。我没有使用任何其他线程,但在调试时我仍然看到另外两个线程。

最佳答案

执行此操作的最直接方法是通过覆盖它的 WndProc() 方法来拦截和评估正在传播到您的控件的消息。通过一些调试器观察,您可以识别与目标事件相对应的 wm_message 常量,然后相应地更改执行流程。 MSDN 站点上有一个很好的例子: https://msdn.microsoft.com/en-us/library/system.windows.forms.control.wndproc%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

要了解您正在查看/查找的消息,请引用: http://www.pinvoke.net/default.aspx/Constants/WM.html

关于c# - Windows 消息泵中的清理消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27167200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com