Tasks are ran on the main thread in a thread pool. While the synchronous code in an async function is running, execution on the main thread is blocked.
waits asynchronously for the Task returned by Run to finish yes, the work being done is sync, not async, but the important thing is the calling thread (the UI thread in this case) is not blocked