无需等待永恒循环结束即可获得下一个功能

时间:2013-03-27 10:19:08

标签: c# windows-runtime async-await

我有功能,开始新任务:

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;)等待Task结束。我需要,(int a = 10;) NOT 等待下一步。我该怎么办?

1 个答案:

答案 0 :(得分:2)

因为你等待你的Task.Run(...)调用,你的GetCamera方法的执行在await行上被'暂停',直到Task完成。一旦异步调用终止,GetCamera方法的执行就会继续。

  

await运算符应用于异步方法中的任务,以暂停方法的执行,直到等待的任务完成。该任务代表了正在进行的工作。

MSDN

要让您的方法继续执行,您需要删除等待。