C#Webアプリケーションでの定期的にスケジュールされた非同期操作の実装 C#Web開発における一般的な課題には、累積データを外部サービスに定期的に送信することが含まれます。 ユーザー要求のブロックを防ぐために、開発者は個別のスレッド内で設定された間隔で非同期メソッドを実行するメカニズムを必要とします。
クラスは、時限実行に対する簡単なアプローチを提供しますが、その署名は非同期方法と直接互換性がありません。 より効果的なソリューションは、説明されているように、
と組み合わされたループを利用します:Timer
while
このループは、Task.Delay
パラメーターで指定された間隔で
<code class="language-csharp">public async Task PeriodicFooAsync(TimeSpan interval, CancellationToken cancellationToken) { while (!cancellationToken.IsCancellationRequested) { await FooAsync(); await Task.Delay(interval, cancellationToken); } }</code>
以上がユーザーリクエストをブロックせずにC#で非同期メソッドを定期的に実行する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。