When using C# Async methods you also would like to have the Clojure-clr equivalent of the await.
Does anyone know whether this exists in clojure-clr?
I've made an await function myself, but possbily a better and more idiomatic solution is available.
I currently use:
(def WaitInterval (Convert/ChangeType 30 System.Int32))
(def RunStatus #{System.Threading.Tasks.TaskStatus/Running
System.Threading.Tasks.TaskStatus/WaitingForActivation})
(defn C#await
[task]
(while (RunStatus (.Status task))
(System.Threading.Thread/Sleep ^System.Int64 WaitInterval))
(when (not= (.Status task) System.Threading.Tasks.TaskStatus/RanToCompletion)
(println "Request has unexpected status: " (.Status task)))
(.Result task))