Monitor.Wait和"exitContext"参数

Bre*_*ias 7 .net c# multithreading synchronization

MSDN文档说明了"exitContext"布尔参数:

如果等待,则返回并重新获取上下文的同步域(如果在同步上下文中); 否则,错误.

我不跟随.假设我已经理解脉冲并等待,那么任何人都可以给出这个参数的手持解释吗?使用它的一个实际例子非常有价值.

Joh*_*oty 5

这是.net框架中一个非常古老的疣; 只是传递虚假并继续前进.

他们所指的"背景"是远程背景.您可以通过在MSDN中查找ContextBoundObject来尝试运行该概念; 这将引导你到各种有趣的东西.在CLR设计的某一点上,这些"对象背景"将比实际结束时更重要; 许多人忘记了他们首先存在,并且大多数人遇到的与CBO有关的唯一API是Monitor.Wait.

所以只是传递虚假并继续前进.:)

如果你想要我们可以更深入......

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

这样做的一个例子很复杂,试图写出来.我可以根据需要为你写一个,但......

这是.net框架中一个非常古老的疣; 只是传递虚假并继续前进.:)