2017-06-05 1 views
-1

以下のコードで300ミリ秒待機し、条件が真であることを確認します。キャンセルTask.Delay(TimeSpan)時間が経過する前に条件が満たされている場合

isMatch変数値は300ミリ秒の時間は、他の言葉でオーバーになる前に私のコードは、イベントのいずれかが最初のすなわちどちらかisMatch値を発生するに基づいて実行する必要がTrueのとき、私は、この300ミリ秒の一定の待ち時間を回避することができますどのように
await Task.Delay(TimeSpan.FromMilliseconds(300)); 

if (isMatch) 
{ 
//do something 
isMatch = false; 
} 
else{ 

} 

または300msが経過しています。

アプリケーションには、100ミリ秒ごとに実行されるタイマーがあり、isMatchの値をTrueに設定します。

+1

'isMatch'はどのように設定されますか? 'isMatch'が設定されていれば、どのようにして早く待機することができますか? –

+0

アプリケーションには、この値の設定を担当する100 msごとに実行されるタイマーがあります。 – San9211

+1

あなたの質問を編集したり、タイマーを示すコードを含めたりしないでください。 –

答えて

3

CancellationTokenを渡してTask.Delayをキャンセルします。あなたのコードが設定したときに

ので、isMatchtrueに、またそれがCancellationTokenSource.Cancelを呼び出しています。

+0

素早い返信をありがとう。私はこのアプローチを試みます。 – San9211

関連する問題