キャンセルする前に、FutureTaskを開始する必要があります
-
09-10-2019 - |
質問
私の呼び出し可能なコードでは、シグナリングを使用して、複数のエンディング動作を別のスレッドに通知します。呼び出し可能なオブジェクトは、執行者のFutureTasksでキューに留められています。また、列に並んだ後にキャンセルされる場合があります。
さて、私の問題は、私がシグナル伝達が機能するために開始されているタスクに頼っていることですが、実行する前にキャンセルされたとマークされている場合は、エグゼクティアがタスクをスキップするように見えます。
したがって、garanteeには、タスクが常に開始され、実行中は常に(中断されたexceptionによって)キャンセルされる方法があります。
また、タスクが開始されていないが失敗したかどうかを確認できますか?
解決
おそらく、FutureTaskのクラスをサブクラス化してオーバーライドできます 終わり() シグナリングを実行する方法。ドキュメントによると、タスクがキャンセルされていても、この方法は呼び出されるべきです。
所属していません StackOverflow