您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

同步等待异步操作,为什么Wait()在这里冻结程序

同步等待异步操作,为什么Wait()在这里冻结程序

await您的异步方法内试图回到UI线程。

由于UI线程正忙于等待整个任务完成,因此出现了死锁。

移动异步调用即可Task.Run()解决此问题。 由于异步调用现在正在线程池线程上运行,因此它不会尝试返回UI线程,因此一切正常。

或者,您可以StartAsTask().ConfigureAwait(false)在等待内部操作使之返回线程池而不是UI线程之前进行调用,从而完全避免了死锁。

其他 2022/1/1 18:18:01 有597人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶