システム上の特定のファイルが変更されるたびに、イベントが発生します。イベントが発生したときにファイルで実行される処理は、約10分と推定されます。最初の変更の処理が完了する前にファイルが再度変更された場合、処理をキャンセルして処理を再開できるかどうかを知りたいのですが。もしそうなら、どうすればこれを達成できますか?
質問する
59 次
2 に答える
3
イベントをキャンセルしたいのではなく、前のイベントの処理をしたいようです。その場合、ファイル処理コードのキャンセルを認識させる必要があります。
CancellationToken と CancellationTokenSourceは既にフレームワークで使用できるため、これらを使用することをお勧めします。イベントの処理を開始したら、新しいキャンセル トークン ソースを作成してどこかに保存し、完了したらクリアします。新しいイベントが発生した場合は、保存された cts があるかどうかを確認し、保存されている場合はキャンセルをリクエストします。
私が含めたリンクには、処理コードの書き方に関するいくつかのコード サンプルが含まれています。
于 2012-10-25T20:32:46.263 に答える
0
処理コードを制御している場合は、処理コードによって定期的にチェックされる「現在の操作」インスタンスを保持できます。処理が完了したら、この参照を null に設定します。
新しいイベントが発生したときに、現在処理中のオブジェクト参照が null かどうかを確認します。そうであれば、ブール値フラグを true に設定できます。処理コードは、次の定期チェックでそれを確認して停止します。
于 2012-10-25T20:19:17.580 に答える