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;) 等待 Task 结束。我需要,那 (int a=10;)不要等待,然后继续。我应该怎么办?

4

1 回答 1

2

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

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

MSDN

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

于 2013-03-27T10:39:21.670 回答