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;)待って、次に進む必要はありません。私は何をすべきか?

4

1 に答える 1

2

Task.Run(...)呼び出しを待つため、GetCameraメソッドの実行は、タスクが終了するまでawait行で「一時停止」されます。非同期呼び出しが終了するとすぐに、GetCameraメソッドの実行が続行されます。

await演算子は、非同期メソッドのタスクに適用され、待機中のタスクが完了するまでメソッドの実行を一時停止します。タスクは進行中の作業を表します。

MSDN

メソッドの実行を続行するには、待機を削除する必要があります。

于 2013-03-27T10:39:21.670 に答える