- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个线程调用 ::PostMessage(hWnd, [...]);
向主线程发送一条消息,提醒它注意异步操作的结果。
但是,我担心如果线程需要特别长的时间来完成它的操作,当调用 PostMessage
时 hWnd
可能不存在(用户可能已经关闭了窗口)。
MSDN Documentation如果 hWnd
无效,则不会说明任何结果。
如果 hWnd
无效,您是否从经验或其他文档中知道我会发生什么?
最佳答案
Raymond Chen 写道:
一些选择摘录:
It so happens that boatloads of programs (and "boatloads" is a technical term) contain bugs where they use window handles after the window has been destroyed. When a window handle is re-used, that program sends a message to the window it thinks is still there, but instead it sends the message to a completely unrelated window. This doesn't bode well for the program, and it usually doesn't bode well for the new window that received the message by mistake either.
We left off our story last time by raising the problem of programs that send messages to windows that have already been destroyed and how window handle re-use exacerbates the problem. Although this is clearly a bug in the programs that use window handles after destroying the window, the problem is so widespread that the window manager folks in Windows NT decided to take a more proactive approach.
关于windows -::PostMessage 到一个无效的 hWnd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17096073/
我正在掌握 Chrome 自定义选项卡中可用的功能,我很想知道如何在自定义选项卡和应用程序本身之间进行通信。我可以在 CustomTabsSession 中看到有类似 requestPostMessa
我正在创建 Cypress e2e 测试,但是我们的应用程序作为父页面顶部的模态 (iframe) 打开。由于 Cypress 不支持 iframe,我决定尝试“独立”运行应用程序。但是,在启动应用程
显然,使用 window.postMessage是 preferred way在所有现代浏览器中通过 window.setTimeout(fn, 0) 对异步 javascript 回调进行排队。我找
我有 2 个应用程序,一个是隐藏窗口(“hW”),另一个是控制台应用程序(“CA”),来自我想向硬件发送命令。在控制台应用程序中,我得到了硬件句柄,这是一个问题:如果我正在运行: PostMessag
所以我在 Html5 Demos 上摆弄 Html5 PostMessage 示例我创建了一个示例 jsfiddle看看我是否理解它是如何协同工作的。 该演示使用了 document.getEleme
我有一个包含 iFrame 的基本 HTML 页面。当父级加载并且 iFrame 在其中时,iFrame 执行以下 javascript: myParent = window.top; if (win
我有以下脚本 父页面(pair_pixel_filter.php): window.addEventListener("message", function(e) { $('
我遇到的问题是,在注册服务 worker 后,navigator.serviceWorker.controller 始终为 null。 我想使用 postMessage 向 service worke
我正在使用 window.postMessage 函数与 Angular Controller 通信 iframe https://developer.mozilla.org/en-US/docs/W
我在关注 this本地消息传递指南,但现在我陷入了停滞。 Firefox 上的开发者控制台不断给我同样的错误: “尝试在断开连接的端口上发布消息”以及之前的“Webconsole 上下文已更改”。 我
有一个问题我无法解决。我在 Delphi 中创建了两个服务应用程序并尝试在其中发布消息。当然,此类应用程序中没有窗口,PostMessage 需要一个窗口句柄参数来发送消息。 因此,我使用 Alloc
到目前为止,我只看到过关于 postmessage 的教程,其中一个窗口发送一种消息,而另一个窗口仅以一种方式解释消息。 如果我想在窗口之间进行许多不同类型的交互怎么办,postmessage 可以处
我有一个带有视频 API 的 HTML 5 简单表单,我想在用户单击提交按钮时播放视频 这里是演示 HTML 表单输入。 HTML 5
我不知道该怎么办。我尝试了来自不同来源的几个示例代码,我在不同的浏览器(从 Chrome 9 到 FF 4)中尝试了它们,但似乎仍然没有任何东西可以与“postMessage”功能一起使用。JS 控制
我正在尝试将消息从父窗口发布到它打开的子窗口。然而,该消息并未被发布。 在父窗口脚本中: function editAnnotation(annotKey){ var annotString
我正在使用 var handle = window.open(url, name, options) 创建一个弹出窗口。该窗口包含许多允许用户导航的链接。用户完成导航后,可以单击按钮来表示已完成。当用
我有一个包含表单的 iframe,在该 iframe 中我有以下内容: // Send a message to the parent window window.parent.postMessag
我正在尝试将消息从父窗口发布到它打开的子窗口。然而,该消息并未被发布。 在父窗口脚本中: function editAnnotation(annotKey){ var annotString
我正在尝试使用 Ben Almans jquery postmessage调整 iFrame 的大小。我或多或少地将他的示例与不同的服务器和动态内容一起使用。 我也在该网站上发布了一个问题,但这可能是
我正在尝试使用实验性 Canvas 功能 - offscreenCanvas。 index.html const canvas = document.queryS
我是一名优秀的程序员,十分优秀!