Dispatcher.Invoke在vs2010中工作但在vs2008中出错

时间:2013-04-01 19:01:40

标签: c# wpf timer compiler-errors dispatcher

明天早上我必须提交我的WPF项目;它在VS 2010中完美运行,但在VS 2008中使用C#(在两种情况下都是.NET 3.5)中出错。

我正在使用Dispatcher.Invoke的计时器,但在VS 2008中它给出了错误:

  

错误163
  System.Windows.Threading.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority, System.Delegate)的最佳重载方法匹配有一些无效的参数。

以下代码给出错误:

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

代码必须在VS 2008中运行。

1 个答案:

答案 0 :(得分: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
   }));