如何在窗口电话中等待后台运行?

时间:2014-03-25 04:33:22

标签: c# windows-phone-8

我想在应用关闭时在后台运行一个方法。

async private void()
{
    var bgw = new BackgroundWorker();
    bgw.DoWork += (s,v) =>
    {
       string temp= await doSomething();
    };
    bgw.RunWorkerCompleted += (s,v) =>
    {
       //...
    };
    bgw.RunWorkerAsync();
}

它产生以下错误

  

await运算符只能在异步lambda表达式中使用。

我该如何解决?

1 个答案:

答案 0 :(得分:0)

DoWork不能是async。我建议你改用Task.Run

async private void X()
{
  await Task.Run(() => doSomething());
  //...
}

但是,您可能需要调用Wait而不是await,因为这是在应用程序关闭时完成的。