gpt4 book ai didi

c# - Monitor.Wait 和 "exitContext"参数

转载 作者:太空狗 更新时间:2023-10-29 20:18:28 25 4
gpt4 key购买 nike

MSDN 文档中提到“exitContext” bool 参数:

true to exit and reacquire the synchronization domain for the context (if in a synchronized context) before the wait; otherwise, false.

我不听。假设我已经了解pulse and wait,谁能对这个参数给出一个手 Handlebars 的解释?其使用的实际示例将非常有值(value)。

最佳答案

这是 .net 框架中一个非常古老的缺陷;只需传递 false 并继续。

他们所指的“上下文”是远程处理上下文。您可以通过在 MSDN 中查找 ContextBoundObject 来尝试了解该概念;这将引导您找到各种有趣的东西。在 CLR 设计的某一时刻,这些“对象上下文”比它们最终实际重要得多;许多人一开始就忘记了它们的存在,而大多数人遇到过的与 CBO 有任何关系的唯一 API 是 Monitor.Wait。

所以只需传入 false 并继续。 :)

如果你愿意,我们可以更深入......

有一种将这些对象上下文之一配置为“同步”的概念。事实证明,在 CLR 中,每个线程都有一个与之关联的逻辑调用上下文。当您使用远程处理进行方法调用时,此逻辑调用上下文将随调用一起传递,以便远程处理边界另一侧的 CLR 可以将处理请求的线程视为逻辑上相同的线程。如果被调用的对象(位于远程处理边界另一侧的对象)回调原始对象,则第二次调用可能在不同的物理线程上进行。但是,由于逻辑调用上下文与远程调用一起流动,因此第二个物理线程可以重新进入“同步”上下文。

这里要写一个这样的例子太复杂了。我可以按需为您写一篇,但是...

这是 .net 框架中一个非常古老的缺陷;只是传递错误并继续前进。 :)

关于c# - Monitor.Wait 和 "exitContext"参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4414676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com