2010-06-16 121 views

回答

2

事件处理程序调用在.NET中是默认同步的,并且由于您的代码既是Managed C++也是C#,它全部是“.NET”。

如果你希望你的事件处理程序,以异步运行,你可以简单地附加一个处理程序在C#方,要么启动另一个Thread做的工作,降低工人为ThreadPool,或调用其他方法来处理异步工作通过Delegate使用asynchronous programming。处理程序然后会很快返回,允许C#工作在后台执行,而MC++代码可以继续调用事件的其他侦听器。

确保如果确实执行了异步处理事件的代码,那么C++代码不希望处理程序修改事件参数中的数据。如果使用类似CancelEventArgs的情况就会出现这种情况。

0

是的。额外的文字来解决长度限制:)

而且我必须通过“我是人类”测试!

+0

这适用于如果我在C#中进行提升和处理的情况? – bsobaid 2010-06-16 21:04:57

+0

在纯粹管理的DLL中,它们都是一样的 - 不管语言如何。我不确定它会是什么样子,如果它是一个不受管理的事件。 – 2010-06-16 21:23:02