我想在应用关闭时在后台运行一个方法。
async private void()
{
var bgw = new BackgroundWorker();
bgw.DoWork += (s,v) =>
{
string temp= await doSomething();
};
bgw.RunWorkerCompleted += (s,v) =>
{
//...
};
bgw.RunWorkerAsync();
}
它产生以下错误
await运算符只能在异步lambda表达式中使用。
我该如何解决?
答案 0 :(得分:0)
DoWork
不能是async
。我建议你改用Task.Run
:
async private void X()
{
await Task.Run(() => doSomething());
//...
}
但是,您可能需要调用Wait
而不是await
,因为这是在应用程序关闭时完成的。