2013-04-01 45 views
0

明天早上我必須提交我的WPF項目;它在VS 2010中完美運行,但在VS 2008(在這兩種情況下都是.NET 3.5)中使用C#發生錯誤。Dispatcher.Invoke在vs2010中工作,但在vs2008中發生錯誤

我使用使用Dispatcher.Invoke但在VS 2008中它給一個計時器錯誤:

Error 163
The best overloaded method match for System.Windows.Threading.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority, System.Delegate) has some invalid argument.

下面的代碼是給錯誤:

Dispatcher.Invoke(new Action(() => 
{ 
    // ANY ACTIONS HERE 
    .. some task 
}), null); 

代碼必須工作VS 2008年。

回答

7

聽起來,VS 2008構建的目標是.NET 3.0,而不是3.5。在.NET 3.5中添加了overload you're using,並且錯誤消息表明正在找到.NET 3.0。

你可以很容易地返工呼叫通過使用3.0超負荷工作:

Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => 
    { 
     // ...some task 
    })); 
+0

太感謝了,你救了我先生。其實我做了同樣的事但忘了刪除null。現在它工作正常。請再多做一次,給我一本關於線程的好書,再次非常感謝 –

+0

@NidhiSharma你可以閱讀我的博客,瞭解一些介紹內容http://reedcopsey.com/series/parallelism-in-net4/它是.NET雖然基於4。不過,我真的推薦從.NET 4+中學習它,因爲所有新功能都比舊API好得多 –

相關問題