在
await您的异步方法内试图回到UI线程。
由于UI线程正忙于等待整个任务完成,因此出现了死锁。
移动异步调用即可
Task.Run()解决此问题。
由于异步调用现在正在线程池线程上运行,因此它不会尝试返回UI线程,因此一切正常。
或者,您可以
StartAsTask().ConfigureAwait(false)在等待内部操作使之返回线程池而不是UI线程之前进行调用,从而完全避免了死锁。

在
await您的异步方法内试图回到UI线程。
由于UI线程正忙于等待整个任务完成,因此出现了死锁。
移动异步调用即可
Task.Run()解决此问题。
或者,您可以
StartAsTask().ConfigureAwait(false)在等待内部操作使之返回线程池而不是UI线程之前进行调用,从而完全避免了死锁。