2011-05-02 45 views
4

有没有什么办法可以在同一个进程中与C++的c#代码异步通信?在同一个应用程序中的C++和c#之间的异步通信

我的意思是我必须在同一个基于WindowsCE的应用程序中混合托管c#和非托管C++(使用pInvoke)。 c#部分是应用程序的核心。代码的C++部分有一个线程来侦听事件,并且当事件被拦截时,我想有一种方法可以与c#部分通信,以触发事件。

目前我认为事件是C++和c#之间通信的方式,但是有可能吗?

有没有办法异步做这种沟通?

感谢,

回答

1

C#和C之间进行异步通信++是一个C#两个部分之间进行异步通信没有区别以应用为你刚刚结束了在那是最终,C#的delegate类型会变成调用不同的功能在.NET JIT的C++端提供函数指针。这被称为反向P/Invoke,并允许非托管C++调用.NET代码。

0

通常的做法是使用代表托管代码中的代表回调和非托管代码中的函数指针。这里有一个MSDN文章概述了办法:

How to: Pass a Delegate^ to a Native Function Expecting a Function Pointer

+0

这听起来像C++ CLI,我认为在Windows CE – 2011-05-03 09:31:25

+0

@Alina达尼拉不支持:正在演示的代码是C++/CLI,但封送处理的概念委托给一个本地函数指针是语言不可知的,并且只是C#中的一个轻微的语法差异。 – ildjarn 2011-05-03 09:33:21

相关问题