Есть ли способ заставить функцию ждать определенного внешнего значения перед возвратом результата? Вот очень рудиментарный пример:Ожидание значения до результата функции сохранения
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
, чтобы эффективно остановить функцию).
Приносим извинения за довольно расплывчатый вопрос.
Обновление:
Я предполагаю, что я ищу какое-то простое решение с одним вызовом, где я могу назвать одну функцию, она делает все, что мне нужно, и возвращает результат только тогда, когда все будет сделано. Поэтому я знаю, что безопасно продолжать.
Я также пробовал это с Timers
, но я не думаю, что можно использовать все в одноразовом решении при использовании Timers
.
Зачем вам нужно подождать? Это [этот метод «Registry.GetValue»] (https://msdn.microsoft.com/en-us/library/microsoft.win32.registry.getvalue (v = vs.110) .aspx)? Если это так, он не должен компилироваться, потому что он исключает три параметра. –
Эта функция должна отправлять команды внешним приложениям и ждать их завершения и сохранения некоторых данных на диск. Мне нужно использовать данные, сохраненные этими внешними приложениями. Мне нужно подождать, чтобы получить последнюю версию сохраненных данных. –
Извините. Я упрощал улучшать читаемость моего примера. Да, это общий метод чтения реестра. –