// функция для выполнения задержки в коде
let sleep ms =
let waiter = async { do! Async.Sleep ms }
waiter |> Async.RunSynchronously
// функция ожидания выполнения некоторого условия "с"
let rec wait c =
sleep 100
let r = c ()
match r with
| true -> ()
| false -> wait c
// пример использования: запоминаем время и ждем 5 секунд
let start = DateTime.Now
wait (fun _ -> (DateTime.Now - start).TotalSeconds > 5.)
На практике эти функии можно использовать для ожидания завершения какого-либо процесса,
например, соединения с сервером.
Комментарии
Отправить комментарий