質問

私の呼び出し可能なコードでは、シグナリングを使用して、複数のエンディング動作を別のスレッドに通知します。呼び出し可能なオブジェクトは、執行者のFutureTasksでキューに留められています。また、列に並んだ後にキャンセルされる場合があります。

さて、私の問題は、私がシグナル伝達が機能するために開始されているタスクに頼っていることですが、実行する前にキャンセルされたとマークされている場合は、エグゼクティアがタスクをスキップするように見えます。

したがって、garanteeには、タスクが常に開始され、実行中は常に(中断されたexceptionによって)キャンセルされる方法があります。

また、タスクが開始されていないが失敗したかどうかを確認できますか?

役に立ちましたか?

解決

おそらく、FutureTaskのクラスをサブクラス化してオーバーライドできます 終わり() シグナリングを実行する方法。ドキュメントによると、タスクがキャンセルされていても、この方法は呼び出されるべきです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top