結果を返す前に関数が特定の外部値を待つようにする方法はありますか?ここ は非常に初歩的な例である:関数の結果を保持する前に値を待つ
Function DoSomething() As boolean
'' ... do something external that takes time and sets a Registry value when done
'' ...
Dim isTaskDone as Boolean
Do Until isTaskDone = True
isTaskDone = Registry.GetValue("ExternalValuePath", "valName", 0)
Loop
Return var
End Function
これは実際に私のニーズのために動作しますが、私は多分思っていたこれを達成するためのよりエレガントな方法は何ですか? また、私はこの解決策がそれをそのまま残すことができるかどうか確かではありません(Until
を使用して効果的に機能を停止させる)。
私はかなり曖昧な質問をお詫び申し上げます。
更新:
私は1つの関数を呼び出すことができ、必要なすべてを行い、すべてが完了したときに結果を返す単純な1コールソリューションを探していると思います。だから私はそれが安全であることを知っています。
私はTimers
でこれを試しましたが、Timers
を使用すると、すべてをワンコールソリューションに含めることはできません。
なぜあなたは待つ必要がありますか?この[Registry.GetValue'](https://msdn.microsoft.com/en-us/library/microsoft.win32.registry.getvalue(v = vs.110).aspx)メソッドですか?そうであれば、3つのパラメータを除いてコンパイルするべきではありません。 –
この関数は、外部アプリケーションにコマンドを送信し、それらが終了してデータをディスクに保存するまで待機します。 これらの外部アプリケーションによって保存されたデータを使用する必要があります。保存されたデータの最新バージョンを取得していることを確認するために、私は待つ必要があります。 –
申し訳ありません。私は私の例の可読性を向上させるために簡素化していました。はい、それはレジストリを読むための一般的な方法です。 –