不能将lambdaexpression式转换为types“System.Delegate”

这些都没有工作:

_uiDispatcher.Invoke(() => { }); _uiDispatcher.Invoke(delegate() { }); 

我想要做的就是在我的主UI线程上调用一个内联方法。 所以我在主线上调用了这个:

 _uiDispatcher = Dispatcher.CurrentDispatcher; 

现在我想从另一个线程执行该线程上的一些代码。 我该怎么做? 我使用错误的语法?

请注意,这不是一个WPF应用程序; 我引用了WindowsBase所以我可以访问Dispatcher类。

问题是你没有提供你想调用的确切types的委托。 Dispatcher.Invoke只需要一个Delegate 。 这是一个Action<T> ? 如果是这样,什么是T ? 这是一个MethodInvoker吗? Action ? 什么?

如果你的委托没有参数并且什么也不返回,你可以使用ActionMethodInvoker 。 尝试这个:

 _uiDispatcher.Invoke(new Action(() => { })); 
  this.Dispatcher.Invoke((Action)(() => { textBox1.Text = "Test 123"; })); 

除非我错过了一些东西,所有你告诉我们的是,这不是一个WPF应用程序 。 我不认为调度员是正确的类使用。

如果这是一个WinForm应用程序,则可以通过WindowsFormsSynchronizationContext访问您的UI线程