ためのパターンをキャンセル長いruningてメソッドをキャンセルする軽量なパターンがあり、ウィッヒは、このようなコードを置き換える:軽量長時間実行メソッドは、Java
public void longComputations() {
... first step...
if (cancelled) {
rollbackWork();
return;
}
... second step...
if (cancelled) {
rollbackWork();
return;
}
... third step...
if (cancelled) {
rollbackWork();
return;
}
}
私はTaskクラスを作ることができることを知って、タスクへのステップを細分化オブジェクトを作成し、キューを作成し、キャンセルチェックをループでステップごとにタスクを実行しますが、私はちょうどそこにシンプルなコード構造パターンがあるのだろうかと思っています。
1 GoFのコマンドパターン –
私は十分な時間の期間のために受け付けます。しかし、実際の答えは「いいえ、単純なコード構造ではありません」ということです。あなたのソリューションは非常に小さなプロセスでは少し重いです(私は 'タスク・オブジェクトにステップを細分する 'と言っていました)が、スレッド・エクゼチション/スレッドの中断を伴うより良い方法だと思います。 –
@killer_PL:はい、スレッドを使用すると、タスクが複雑すぎるかもしれません... –