【发布时间】:2017-12-08 14:30:13
【问题描述】:
我有一个 C# WPF 应用程序需要调用非托管 C++ DLL 并从中获取简单的事件通知。 DLL 将等待在 .NET 中看不到的键盘事件(当应用程序没有输入焦点时为 VK_MEDIA_PLAY_PAUSE),并通知主应用程序。我找到了一个使用信号量进行跨进程同步的示例,但这似乎有点矫枉过正。同样,使用命名管道、COM、套接字或 p/invoke 似乎超出了我的需要。
具体来说,我将在 WPF 应用程序中启动一个工作线程,该线程将等待键盘事件发出信号,然后通知主 UI 线程执行某些操作。
提前致谢。
【问题讨论】:
-
PostMessage() 带有按钮点击的 ID?
-
您可以使用命名事件,但如果您能提供代码示例,我们会更有帮助
-
使用命名事件的建议让我走上了正轨。这正是我想要的。在 C++ 端调用 CreateEvent 并在 C# 端创建一个具有相同名称的 EventWaitHandle 正是我想要的。
标签: c# c++ wpf thread-synchronization .net-native