C ++到C#事件处理

所以我有了我的C# WinForm应用程序,从它我称之为C ++ CLI MFC dll库。

但是我的C ++库上有一些事件 ,即使这个事件发生在这个库的本机(非CLI)部分。 我需要从我的C#应用​​程序调用一些代码,并在此事件上获得一些数据。

所以当从客户端调用这个本机函数时:

bool __stdcall ClassName::WorkQuery() { ...... switch(pp->code) { case READCOMPLEX: .......... 

我需要从C#带来数据, 所以我需要以某种方式将此注册为事件。

所以问题是你需要运行C#代码来响应MFC事件(或C ++回调),对吧?

为什么不能只将本机处理程序注册到本机事件/回调,然后只调用.NET事件,这可以从C#中消耗掉。

您可以从C ++ / CLI事件句柄创建.NET事件,然后本机使用它。 只需使用EventWaitHandle或派生的AutoResetEvent和ManualResetEvent。