我有下面的代碼,我在處理事件的兩倍。不過,我總是希望確保mynewclass
總是先處理事件,然後觸發本地事件處理程序代碼。我明白了MyClass的事件應該首先開火,因爲這是第一次創建一個,但因爲線程和入隊正在發生,我認爲它的時間太長及其在做myhandleeventlocal
東西之前,我希望它這樣做。任何方式,我可以等待它發生?優先化事件處理程序
public MyMainClass
{
private MyMethod()
{
MyClass mynewclass = new MyClass();
mynewclass.myObject += MyHandler(myhandleventlocal);
mynewclass.loadedevent += EventHandler(loadedevent)
}
private void myhandleventlocal()
{
//do stuff
}
private void loadedevent()
{
//do some stuff
}
}
public MyClass
{
public MyObject myObject;
public event loadedevent;
public MyClass()
{
myObject = new MyObject();
myObject += MyHandler(myhandlevent);
}
private void myhandlevent(long value, string detail)
{
//Start a thread
//Enqueue value and detail
//On seperate thread dequeue value and process it
//Raise loadedevent event
}
}
更新:我更新了我的問題和代碼來演示問題。
-1:您的代碼不編譯。 – 2010-07-29 18:11:51
它不應該!這是一個粗略的例子。 – Jon 2010-07-29 18:34:27