这些都不起作用:
_uiDispatcher.Invoke(() => { });
_uiDispatcher.Invoke(delegate() { });
我想要做的就是在我的主 UI 线程上调用一个内联方法。所以我在主线程上调用了这个:
_uiDispatcher = Dispatcher.CurrentDispatcher;
现在我想从另一个线程在该线程上执行一些代码。我该怎么做?我使用了错误的语法吗?
请注意,这不是 WPF 应用程序;我引用了 WindowsBase
,所以我可以访问 Dispatcher
类。
最佳答案
问题是您没有提供要调用的委托(delegate)的确切类型。 Dispatcher.Invoke
只需要 Delegate
.是Action<T>
吗? ?如果是这样,什么是 T
?是MethodInvoker
吗? Action
?什么?
如果您的委托(delegate)不接受任何参数且不返回任何内容,您可以使用 Action
或 MethodInvoker
.试试这个:
_uiDispatcher.Invoke(new Action(() => { }));
关于c# - 无法将 lambda 表达式转换为类型 'System.Delegate',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9549358/