有一個輕量級的模式,取消長乳寧方法,至極替換代碼:輕型長時間運行的方法取消模式的Java
public void longComputations() {
... first step...
if (cancelled) {
rollbackWork();
return;
}
... second step...
if (cancelled) {
rollbackWork();
return;
}
... third step...
if (cancelled) {
rollbackWork();
return;
}
}
我知道我可以做一個任務類,細分步驟任務對象,建立一個隊列,只是做一步一步循環取消檢查,但我只是想知道是否有任何簡單的代碼結構模式sush情況。
+1 GoF指令模式 –
我會接受,因爲有足夠的時間段。但是可以肯定的是,真正的答案是「不,這沒有簡單的代碼結構」。你的解決方案對於非常小的進程有點重量級(正如我所說的細分任務對象的步驟),但我認爲這是一個涉及線程擴展/線程中斷的更好的練習。 –
@killer_PL:是的,使用線程可能會使任務過於複雜...... –