2013-03-27 30 views
1

我有功能的結束,其開始新的任務:獲取下一個功能,而無需等待永恆的循環

private async Task GetCamera() 
{ 
    .... 
    await Task.Run(async() => await MyAwesomeTask());//eternal cycle 
    int a=10;//how start without waiting for the end of the thread? 
    int b=15; 
    SomeFunction(a,b);  
} 

private async Task MyAwesomeTask() 
{ 
    while (true) 
    { 
    await Task.Delay(TimeSpan.FromSeconds(0.5)); 
    //some task 
    } 
} 

但下一行(INT A = 10;)等待時任務將結束。我需要,那(int a = 10;)NOT等下去吧。我該怎麼辦?

回答

2

因爲您等待您的Task.Run(...)調用,您的GetCamera方法的執行在await行上「暫停」,直到Task完成。只要異步調用終止,GetCamera方法的執行就會繼續。

將await運算符應用於異步方法中的任務,以掛起方法的執行直到等待完成的任務完成。任務代表正在進行的工作。

MSDN

爲了讓你的方法繼續,你需要刪除等待執行。

相關問題