私は、関数を実行している非同期タスクを持っています。この関数にはループ文は含まれていませんが、SQL Server上で一連のSQLコマンドが実行されています。今、私はこれらのSQL操作を取り消すことができる私のウィンドウ上のボタンがあります。つまり、非同期タスク全体をキャンセルします。ループベースのステートメントを実行していないタスクをキャンセルする方法
このテクニックではCancellationTokenSourceとCancellationTokenがタスクをキャンセルする必要があることは知っていますが、インターネット上で多くの例を見てきましたが、そのタスクが実行している関数には、ブール値プロパティの場合はIsCancellationRequested
です。しかし、私の場合はそうではありません。私の関数には、このブール値のプロパティのチェックを行うことができるループ文はありません。
どのような方法や手法を提案してください。
すべてのヘルプは非常にかなりの量になる...
事前にありがとう...
完了したコマンドをキャンセルしたときにそれらのコマンドがトランザクションに含まれていない場合、私はそれらがロールバックされないと信じています。なぜユーザーはキャンセルするのですか?これが長時間実行されるタスクの場合は、BackGroundWorker with Progressを検討して、処理されたSQL文の数をレポートできます。 – Paparazzi
@Blam、おそらくそれらは 'SELECT'なので、それらをロールバックすることは重要ではありませんか? – svick