繁体   English   中英

C#和C ++之间的线程同步

[英]thread synchronization between c# and c++

我有一个C#WPF应用程序,该应用程序需要调用非托管C ++ DLL并从中获取简单的事件通知。 DLL将等待无法在.NET中看到的键盘事件(当应用程序没有输入焦点时会显示VK_MEDIA_PLAY_PAUSE),并通知主应用程序。 我已经找到了一个使用信号量进行跨进程同步的示例,但这似乎有些过分。 同样,使用命名管道,COM,套接字或p / invoke似乎超出了我的需要。

具体来说,我将在WPF应用程序中启动一个工作线程,该线程将等待键盘事件被信号通知,然后通知主UI线程在发生事件后立即执行操作。

提前致谢。

一旦我指出了命名事件的方向,解决方案就变得清晰了。 在C ++方面,CreateEvent创建命名事件。 但是在C#方面,首先出现的2种事件类型是AutoResetEvent和ManualResetEvent,它们不接受名称,而EventWaitHandle接受。 一旦我找到那堂课,其余的就到位了。 在我的项目中,响应于所需的击键,在C ++端设置了事件,而C#端在BackgroundWorker线程中等待事件并在事件发生时对其进行操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM