2010-06-16 163 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