【发布时间】:2010-03-14 21:33:37
【问题描述】:
我有一个用 C# 编写的 Windows 服务,它处理我们所有用于信息亭应用程序的外部硬件 I/O。我们的新设备之一是带有原生 DLL 中的 API 的 USB 设备。我创建了一个适当的 P/Invoke 包装类。但是,此 API 必须使用 Windows 应用程序的 HWnd 初始化,因为它使用消息泵来引发异步事件。
除了向硬件制造商提出请求以向我们提供不依赖于 Windows 消息泵的 API 之外,还有什么方法可以在我可以通过的 Windows 服务的新线程中手动实例化消息泵进入这个 API?我真的必须创建一个完整的 Application 类,还是有一个封装消息泵的较低级别的 .NET 类?
【问题讨论】:
-
看看这个帖子,它可能会有所帮助:connect.microsoft.com/VisualStudio/feedback/details/241133/…
-
@overslacked,确实如此。它确切地说明了如何做到这一点。
-
@overslacked 我知道这是一个老问题,因此 MS Connect 链接不再有效也就不足为奇了。但由于该链接的内容似乎对这里的讨论至关重要,我想知道是否有可用的新链接。很抱歉给您添麻烦了!
-
@Sabuncu - 你能发布一个新问题,链接回这个问题,展示你已经尝试过但没有奏效的这个问题的已接受答案的哪些部分?我会密切关注您的问题,看看是否可以提供帮助;否则,我认为接受的答案很好地说明了解决方案。
-
@Sabuncu - 我明白了!在这种情况下,archive.org 似乎有 2014-07-06 的副本 - web.archive.org/web/20140706130218/http://connect.microsoft.com/…
标签: c# .net service message-pump