在我的C++/Qt應用程序,每當我想提出一個信號/事件,我只想做:如何在訂閱者的線程上調用事件處理程序?
emit Event();
這就需要所有的處理程序Event()
同一個線程訂閱了此事件的對象上。
C#似乎沒有提供類似的東西,那麼我該怎麼做?
我有一個類,姑且稱之爲EventRaiser
,其中有一個SomethingHappened
事件,並在需要時引發事件的方法:
class EventRaiser
{
public event EventHandler SomethingHappened;
void RaiseEvent()
{
var anyoneWhosInterested = SomethingHappened;
if (anyoneWhosInterested != null)
{
try { anyoneWhosInterested(this, new EventArgs()); }
catch { /* we don't care */ }
}
}
}
我的問題是RaiseEvent()
將調用線程RaiseEvent()
上了處理程序調用。但是我需要在訂閱該事件的線程上調用處理程序。
我該怎麼做?
我在.NET 2.0和Visual Studio 2012
[類似問題](http://stackoverflow.com/a/2459683/815938)之前曾經討論過, – kennyzx 2014-10-12 12:44:07