Skip to content

求助,Start方法卡住,或await StartAsync方法后调用session的任意方法也都会一直卡住 #44

Closed Answered by SlimeNull
Alex1911-Jiang asked this question in Q&A
Discussion options

You must be logged in to vote

这可能是因为死锁问题. 如果你在一个 async 方法中尝试使用同步的方法, 则可能导致死锁.

大概如下: 一个多个 async 异步方法总会尽可能的利用少的线程, 这就意味着, 他的执行是依赖于 "上下文切换" 的. 如果在这里, 调用同步方法, 那么整个线程会被阻塞, 从而没办法切换到另外一个正在执行的异步任务中. 如果你等待的任务正好是将要执行的异步任务, 那么就会造成死锁.

建议是: 要么全局使用同步, 要么全局使用异步.

感谢你提到这件事, 我会将它添加到 readme 中的

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by SlimeNull
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants