为什么在 SynchronizationContext.Current.Send() 中执行的代码不能在多次调用中在同一个线程中运行

问题描述 投票:0回答:1

enter image description here 如图代码,在第一个send()中CurrentThread的id为1,但在第二个send()中变成了另一个值, 这是否意味着 uiContext.Send() 不能保证回调中的代码始终在同一个线程中执行?

此外,如果我希望在调用异步方法后在 UI 线程中执行我的代码,我该怎么办。

c# synchronization synchronizationcontext
1个回答
0
投票

Send
唯一的保证是在操作完成之前它(
Send
)不会完成;它如何做到这一点以及使用哪些线程取决于具体的实现。您还没有告诉我们您正在使用什么同步上下文实现(尽管它似乎与 UI 相关),因此我们无法透露任何特定于该实现的其他内容。

© www.soinside.com 2019 - 2024. All rights reserved.