- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是 .NET 的新手和 Windows,我正在尝试弄清楚如何将遗留代码集成到我的 C# 项目中。拥有代码的人说他只需要“消息泵”和“空闲处理”。
谷歌搜索后,听起来至少 MFC , Windows Forms和 Win32都有自己的消息泵?这是真的吗?
我的 C# 代码是一个控制台应用程序,据我所知根本没有任何消息泵。我以为那些只是 GUI 的东西(?)。
那么,当他说他需要“消息泵”时,我需要在我的 C# 代码中做什么才能使他的旧代码正常工作?
我需要使用的代码已经在一个 GUI 应用程序中使用过。现在我需要在服务器中使用它,并且对需要 GUI 消息泵感到有点害怕。我的代码是纯 C#,里面根本没有任何 GUI 的东西。只是一些数字运算和 I/O。
最佳答案
让我先了解一下消息和消息泵的背景知识。
在 Windows 中,GUI 应用程序通过处理消息来工作。例如,当您移动鼠标时,Windows 会向鼠标下方的窗口发送 WM_MOUSEMOVE 消息。
Windows 将消息发送到窗口所属线程的“消息队列”,并且必须有人将此消息路由到特定窗口。那个人就是消息泵。
每个 Windows UI 框架都有一个消息泵,最简单的消息泵如下所示(此代码示例使用 C++;您可以使用 interop 在 .NET 中编写它):
MSG msg;
while(GetMessage(&msg, hwnd, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
每个 GUI 程序都必须有一个消息泵,但是命令行程序只需运行上面的代码就可以启动消息泵。显然,由于您没有打开的窗口,因此您不会从操作系统收到任何消息。要将消息插入队列,请使用 PostThreadMessage。
关于c# - 只有一个 "message pump"还是很多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/974567/
L = { w | w in {0,1}* and w has equal number of 0s and 1s } 令 n 为抽水引理的数量。 我选择 s = 0n 1n 和 y = 0t 其中
最近我一直在研究社交网络的发展,我经常找到 pump.io 的引用资料。然而,关于 pump.io 究竟是什么的信息非常有限。官方网站只是说:“这是一个流服务器,可以完成人们真正想从社交网络获得的大部
简介 我是 GTK+ 编程的新手,很难理解为什么以下内容不会阻塞。 if self.journal: # Pump GTK messages. while gtk.events_pen
我一直在寻找一个很好的例子来将进程输出和错误流写入日志文件。我使用 apache-commons exec 库来执行我的进程。按照代码示例进行演示 public static int executeC
我是 .NET 的新手和 Windows,我正在尝试弄清楚如何将遗留代码集成到我的 C# 项目中。拥有代码的人说他只需要“消息泵”和“空闲处理”。 谷歌搜索后,听起来至少 MFC , Windows
我有一个使用 expdp 创建的 Oracle 数据库备份文件 (.dmp)。 .dmp 文件是整个数据库的导出。 我需要从此转储文件中恢复 1 个架构。 我不知道此转储文件中的架构名称。 要使用 i
因此,这与抽水引理及其工作原理无关,而与先决条件有关。 在网络上的任何地方,您都可以阅读到常规语言必须通过激进的引理,但是现在任何人都在谈论有限语言,而有限语言实际上是常规语言的一部分。 因此,我们可
我的理解是: OStatus 是一种去中心化社交网络协议(protocol),由多个其他协议(protocol)(Atom feeds、Activity Streams、PubSubHubbub、Sa
我刚刚安装了 pump.io在我的服务器(CentOS 6.5、x64)上,我的服务器上还有一个托管在 Apache 后面的 Ghost 博客 (blog.mydomain.example)。我网站的
我最近从 0.8~ 更新到最新版本的 Node.js (1.10~),我在运行时收到一条消息说: util.pump() is deprecated. Use readableStream.pi
我正在尝试将架构导入 Ubuntu14.04 中的 dockerized 容器中。该容器基于 this image ,其中包含 Oracle XE 11g。警报日志对此没有显示任何内容,impdp 本
在运行我的 gulp 构建时出现问题,我的泵包发送回错误回调。 错误:泵至少需要两个流 我进一步挖掘并在包的 index.js 中任何流 < 2 打印出上面的内容。 我的代码在下面 gulp.task
为了更好地理解这个问题,请引用我之前的问题: C++ MSAPI 5: SetNotifyCallbackFunction not working 在 Microsoft SAPI 中,为了在您使用
我正在学习问题中引理之间的区别。我能找到的每个引用资料都使用以下示例: {(a^i)(b^j)(c^k)(d^l) : i = 0 or j = k = l} 以显示两者之间的差异。我可以找到一个使用
我尝试通过 postman (/main/register) 访问 Pump.io 的注册 API,但无法注册,它显示缺少必需的参数(状态代码 400)。除了昵称、密码、重复和电子邮件之外,它还需要哪
如何在 C++ 中定义可由消息泵处理的自己的 WM(如 WM_CLOSE 等)消息? 如果可能的话。 最佳答案 这取决于您使用消息的目的。 This link显示 Win32 消息的“地址空间”的 s
我们在不同的 oracle 服务器中有两个模式。我们计划将一个模式用作事务数据库,将其他模式用于报告。 由于事务数据库是任何用户生成数据的入口点,我们希望定期将此数据复制/发送到报告模式。我们想到了在
我想在 Vert.x 中实现一个概念验证 TCP 透明代理。 要求 在端口 X 上监听的 Verticle,当有人连接并发送数据时,它会打开一个客户端连接到预配置的 TCP 服务器。从这一刻起,直到任
如果我让字符串 w是a^mb^m然后我们知道 y将仅包含 a是因为规则 |xy| 对于任何 m >= 1 你有 aa[aa...]。因此,当您的对手选择 y = aa 时,他们会强制您将 L 中的字
导出/导入整个模式的旧方法: exp user/pwdp@server FILE=export.dmp OWNER=user ROWS=Y imp newuser/pwd@server FULL=
我是一名优秀的程序员,十分优秀!