2010-06-08 36 views
2

我有一個方法,我想執行的UI消息泵,從而做到以下幾點:的BeginInvoke不能調用在發佈目標方法建立

private void SomeMethod() { 
    BeginInvoke(new MethodInvoker(MethodToInvoke)); 
} 

private void MethodToInvoke() { 
    // This method contains code that I wish to execute on UI message pump. 

} 

現在,上面的作品就好了,當我創建該項目的Debug版本。但是,當我創建Release版本時,「MethodToInvoke」方法不會被調用。

有沒有人有任何想法,爲什麼這可能是?

感謝,義隆

+0

這不是BeginInvoke是這個問題的根源。 – 2010-06-08 20:47:18

回答

1

原來調用BeginInvoke的是拋出一個異常,我已經錯過了。這當然解釋了爲什麼目標方法沒有得到執行。

System.InvalidOperationException:在創建窗口句柄之前,無法在控件上調用Invoke或BeginInvoke。

但不清楚,爲什麼這個異常沒有在調試版本中引發。

+1

這可能是一個計時問題。在調試器中,其他的東西正在進行,這可能會給你的窗口句柄創建時間。 – ChrisF 2010-06-09 15:47:45