TPLでのCancellationTokenのサポートについては知っていますが、(IMO)は、適切なtoken.ThrowifCancellationRequested()がある場合にのみ機能します。これは、私のシナリオでは不可能です。
これを達成するための(スレッドを完全に中止する以外の)他のエレガントな方法はありますか?
スレッドのトランザクション状態は気にしません。スレッドがどのような状態で停止/キャンセルされたかは関係ありません。
ご関心をお寄せいただきありがとうございます。
詳細:新しいスレッド(タスク/スレッドプール/スレッド)を生成して、複数のストアドプロシージャを呼び出して100万近くのレコードをフェッチするAPIを呼び出す必要があります。次に、各レコードに装飾(ビジネス計算)を行います。最後に、このAPIは、ビジネス上重要なレポートであるデータテーブルを返します。必要に応じて、この処理を途中でキャンセルするオプションをユーザーに提供したいと思います。たとえば、フィルターのセットが間違って設定されている場合。APIは読み取り専用操作のみを実行するため、トランザクション管理は必要ありません。