C# で指定された時間周期で非同期処理を実行するサンプル
- C# の Windows Form アプリ
- Visual Studio 2015 で作成
- 指定された周期で処理を実行したい
- Timerを使えば、
Interval
プロパティで指定した時間 (ms) ごとに処理ができます。
- Timerを使えば、
- 処理は複数あり、それぞれの所要時間は瞬時〜数十秒
- 各処理は並列で処理したい
- 各処理を
Task.Run
メソッドで呼び出し、非同期実行しましょう。
- 各処理を
- 同じ処理は重複実行しないように制御
Task.Status
で実行中かどうかの判定ができます。
- 中断ボタンをクリックすると周期実行を中断し、実行中の処理をキャンセルする
CancellationTokenSource.Cancel
メソッドで実行中の Task をキャンセルできます。