message-pump相关内容

哪些阻塞操作会导致 STA 线程泵送 COM 消息?

当在 STA 线程上实例化 COM 对象时,该线程通常必须实现消息泵,以便编组对其他线程的调用(请参阅 这里). 可以手动泵送消息,也可以依靠某些但不是全部线程阻塞操作会在等待时自动泵送与 COM 相关的消息这一事实.文档通常无助于确定哪个是哪个(请参阅此相关问题). 如何确定线程阻塞操作是否会在 STA 上泵送 COM 消息? 到目前为止的部分列表: 阻止进行抽水的操作* ..
发布时间:2022-01-14 11:35:29 C#/.NET

.NET Windows 服务中的消息泵

我有一个用 C# 编写的 Windows 服务,用于处理自助服务终端应用程序的所有外部硬件 I/O.我们的新设备之一是带有原生 DLL 中的 API 的 USB 设备.我创建了一个适当的 P/Invoke 包装类.但是,此 API 必须使用 Windows 应用程序的 HWnd 进行初始化,因为它使用消息泵来引发异步事件. 除了请求硬件制造商为我们提供不依赖于 Windows 消息泵的 AP ..
发布时间:2021-12-27 21:00:10 C#/.NET

运行多个 UI 线程

跳到问题底部;这只是一些额外的信息 我正在使用一个组件(GeckoFX)来渲染一些网站,很好,但它只能在 Windows 窗体中使用;因为它必须绑定到可以绘制的 WinForms 对象.因为所有的 WinForms 都在同一个线程中运行,所以我一次只能使用一个 GeckoFX 实例;所以我决定以 WinForm 的形式创建一个“工人类",并在其中添加所有逻辑.该表单不需要与主表单进行通信. ..
发布时间:2021-12-08 14:08:25 C#/.NET

发送和接收 Windows 消息

Windows 消息似乎是在 Windows 操作系统上通知应用程序的好方法.它实际上运行良好,但我想到的问题很少: 如何为 SendMessage 例程的 lparam 指定结构化数据(就像许多消息代码一样)?我的意思是...当然参数是一个指针,但是进程如何访问它呢?也许它是由发送/接收消息的进程加载的 DLL 分配的? 是否可以共享消息结构化参数(在发送方和接收方之间)?它们被编组 ..
发布时间:2021-09-25 19:15:08 其他开发

窗体和控件(WM_xxx)之间的C#Windows(触摸->单击/焦点)消息

我有一个第三方开放源代码控件(真的不重要,但它是CefSharp的Chromium Web浏览器[v 43]). 最初,存在一个问题,如果您在控件内单击时打开了一个窗体菜单,则该菜单不会自行消失(就像控件吞没了click事件一样). 为避免这种情况,示例应用程序建议拦截 WM_MOUSEACTIVATE ,并通过发布但是,它创建了另一个.现在,一旦您在控件(触摸屏)内部至少触摸了3次, ..
发布时间:2020-07-14 05:09:38 C#/.NET

在运行中结束程序

pythoncom.PumpMessages() 据我了解,这一行基本上告诉程序永远等待.对我来说,它似乎正在工作.但是,我希望能够在适当的刺激下结束该程序.如何结束上述行,或停止程序进一步运行. 解决方案 根据这些 docs ,pythoncom.PumpMessages(): 为当前线程抽取所有消息,直到出现WM_QUIT消息为止. 因此,停止收集消息的一种方法是使用 ..
发布时间:2020-07-05 03:45:26 Python

控制台应用程序中的消息泵

我有一个用.NET编写的相当简单的控制台应用程序。有时,应用程序在没有操作员的情况下以批处理模式运行,而有时它是“自费”运行的。如果以批处理模式运行,则有一个已定义的默认选项,该选项可使程序自动运行。如果存在操作员,则还有其他选项允许用户从功能列表中进行选择。 由于我不想进入的原因,请使用命令-line参数不是首选。相反,我创建了一个10秒的窗口,操作员可以在其中选择功能。目前,我正在使用一 ..
发布时间:2020-05-30 21:58:02 C#/.NET

Visual Basic.NET:如何创建线程来更新UI

通常的VB处理繁重的任务的方法是将其放在后台工作线程中,而主线程则继续处理UI. 无论出于何种原因,我都需要以另一种方式进行操作:主线程执行繁重的工作,而后台线程则更新UI. 这是我到目前为止所拥有的.唯一的问题是,虽然UI窗口(Form1)确实被重绘,但您无法与之交互,甚至无法移动或调整它的大小(鼠标光标变成沙漏状且不会单击). Public Class ProgressDis ..

运行多个UI线程

跳到底部询问该问题;这只是一些额外的信息 我正在使用组件(GeckoFX)渲染一些网站,很好,但是只能在Windows窗体中使用;因为它必须绑定到可以绘制的WinForms对象.因为所有WinForms都在同一线程中运行,所以我一次只能使用一个GeckoFX实例.因此,我决定以WinForm的形式创建一个“工人阶级",并在其中添加所有逻辑.该表单不需要与主表单进行通信. 现在我可以启动 ..
发布时间:2020-05-13 20:37:46 C#/.NET

如何使程序不使用Alt-Tab或任务栏上显示

我需要在后台坐着,当用户连接到一个RDP会话它会做一些环境设置,然后启动一个程序的程序。当程序关闭时它会做一些家务和注销会话。 我做它目前的方式是我的终端服务器启动该应用程序。这是建立一个Windows窗体应用程序,以保持控制台窗口的显示出来: 公共静态无效的主要() { //(略...)做一些设置工作 过程PROC =新工艺(); //(略...)安装的过程 proc. ..
发布时间:2016-09-29 12:17:50 C#/.NET

其中阻塞操作导致STA线程泵COM消息?

当一个COM对象在STA线程实例化,线程通常实行以通话编组来来回回其他线程的消息泵(见的这里)。 一个既可以泵手动的消息,还是要靠在等待一些,但不是全部,线程阻塞操作会自动泵COM相关的消息的事实。文档通常不会在决定哪个是哪个了帮助(请参见此相关的问题)。 我怎么能确定一个线程阻塞操作将泵上的STA? COM消息 部分列出了目前为止: 阻止它的操作做泵*: Thread.Join ..
发布时间:2016-08-26 20:10:49 C#/.NET

在.NET Windows服务消息泵

我有一个Windows服务在C#编写处理我们所有的外部硬件的I / O亭应用。我们的一个新的设备是配备在本机DLL中的API USB设备。我有一个适当的P / Invoke包装类创建。但是,此API必须用HWND到Windows应用程序初始化,因为它使用消息泵来提高异步事件。 另外投入要求硬件制造商,为我们提供了不依赖于Windows消息泵的API,是有什么办法可以手动实例在我的Windows服 ..
发布时间:2015-11-24 14:50:18 C#/.NET