2014-03-25 55 views
1

我想在應用程序關閉時在後臺運行方法。如何在窗口電話中運行在後臺運行?

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

它產生以下錯誤

在AWAIT操作者只能異步lambda表達式內使用。

如何解決呢?

回答

0

DoWork不能是async。我建議你使用Task.Run代替:

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

但是,您可能需要調用Wait,而不是await,因爲這是在應用程序關閉完成。