私は完了までに長い時間がかかり、完了したかどうか定期的にチェックしたいという方法があります。呼び出しisDoneが実際に行われるべきものの一部を行い、終了と偽とき、trueを返すことも可能である文脈では「長時間実行されているメソッドが完了しましたか」にデザインパターンがありますか?
type
IWaitForDone = interface
function IsDone: boolean;
end;
function TSomeClass.doSomethingThatTakesLong: IWaitForDone;
begin
Result := TClassThatDoesIt.Create;
end;
var
Waiter: IWaitForDone;
begin
Waiter := SomeClass.doSomethingThatTakesLong;
while not Waiter.isDone do
doSomethingElse;
Waiter := nil;
end;
:これは私が(簡易コード、2007デルファイ)が出ているものですまだ実行されるべき部分がある間に。あるいは、別のスレッドがその作業を完了しているかどうかをチェックするだけで済みます。私はこれを発信者に見せたくありません。
私はこのタイプの問題に遭遇する最初の人ではないと思いますが、この解決策にはすでに名前(デザインパターン?)がありますが、見つけられませんでした。 それは何と呼ばれていますか?
これはWindowsアプリ用ですか? –
はい、それはなぜ重要ですか? – dummzeuch