C#“同步”在“ SynchronizationContext”中是什么意思?

时间:2018-08-31 03:58:38

标签: c# synchronizationcontext

我了解什么是同步上下文,但我只是不了解单词中的“同步”是什么意思。你有什么想法吗?

谢谢

1 个答案:

答案 0 :(得分:3)

同步或更好地理解您可以首先了解同步的意思。

不要使用字典定义,它现在会让您感到困惑。取而代之的是一个过于简单的类比:

  

走路时,双腿同步!也就是说,他们   coordinate/cooperate一起完成名为   步行。当左脚接触地面时,右脚离开地面   (或正在离开的过程中),以及右脚触碰时   反之亦然。

     

关键要点是,两只脚都有一个隐含的协调说明   只有当第一个出现时,另一个才会开始(即离开地面)   接地。

因此,就线程和共享资源而言。同样的类推适用。所有线程都希望使用某些共享资源(在我们的情况下)。因此,他们需要“协调”那里的资源使用。

因此,当您听到“同步”一词时,请考虑单词coordinate/cooperate。希望你现在明白了。我故意不解释SynchronizationContext,因为您说您已经知道。

更新:尽管如此,我还是在此向您提供一些类比的详细信息:

希望您现在了解同步的含义!就SynchronizationContext而言,它只是一个类,它使您可以与现有UI线程的资源(主要是UI组件并且有状态)进行同步(即协调/合作)。通常可以通过将消息放入UI线程的队列中来实现此目的,而不是自己直接修改UI状态。

免责声明:不要自己尝试走路,我在计算腿部synchronization时只损失了2卡路里。