タイトルが示すように、データベースからロードを開始するメソッドを呼び出します。特定のイベントが発生した場合、読み込みが完了するのを待たずに、そのメソッドを途中で終了したいと考えています。
編集:問題のメソッドはUIスレッドで実行されます
タイトルが示すように、データベースからロードを開始するメソッドを呼び出します。特定のイベントが発生した場合、読み込みが完了するのを待たずに、そのメソッドを途中で終了したいと考えています。
編集:問題のメソッドはUIスレッドで実行されます
そのメソッドの外部からメソッドを (きれいに) 破壊的にキャンセルする方法はありません。
.NET Framework でのキャンセルは通常、協調モデルです。これは、イベントがキャンセルを要求することを意味し、メソッドは、キャンセルする必要があるかどうかをときどきチェックしてから、正常に終了します。
これは、フレームワーク内のCancellationToken
andCancellationTokenSource
型を介して処理されます。詳細については、MSDN のキャンセルに関するトピックを参照してください。
UI スレッドで長時間実行されるメソッドを実行する場合、それを停止するのに役立つ組み込みのメソッドはほとんどありません。また、UI スレッドはイベントをリッスンできません (メソッドの実行時にブロックされるため)。
UI をレスポンシブにし、操作をキャンセル可能にするオプション:
キャンセルするには - 操作が実行されている接続/ファイルを終了/閉じることで、一部の操作をキャンセルできる場合があります。ほとんどの IO 操作は、そのようなアクションがメソッドをすぐに終了させることを保証しないことに注意してください。