【发布时间】:2014-06-19 23:42:57
【问题描述】:
我有一个方法,其中包含一些执行await 操作的代码:
public async Task DoSomething()
{
var x = await ...;
}
我需要该代码在 Dispatcher 线程上运行。现在,Dispatcher.BeginInvoke() 可以等待,但我无法将 lambda 标记为 async 以便从其中运行 await,如下所示:
public async Task DoSomething()
{
App.Current.Dispatcher.BeginInvoke(async () =>
{
var x = await ...;
}
);
}
在内部async,我得到错误:
无法将 lambda 表达式转换为类型“System.Delegate”,因为它不是委托类型。
如何在Dispatcher.BeginInvoke() 中使用async?
【问题讨论】:
标签: c# wpf asynchronous lambda async-await