C# "Synchronization" 在 "SynchronizationContext" 中是什么意思?

C# What does the "Synchronization" means in "SynchronizationContext"?

我明白什么是同步上下文,但我就是不明白这个词中的"synchronization"是什么意思。你有什么想法吗?

谢谢

为了您的理解,同步或更好让我们首先了解 Synchronize 这个词的意思。

暂时不要使用字典定义,它会让您感到困惑。相反,让我们做一个过于简单的类比:

When we walk, our legs are synchronized! That is, they coordinate/cooperate together to complete an activity called walking. When left foot touches the ground the right foot leaves it (or is in process of leaving), and when right foot touches its vice-versa.

The key takeaway is, both feet have an implicit coordination stating that other will start (i.e. leave ground) only when first one is grounded.

所以从线程和共享资源的角度来说。同样的类比也适用。所有线程都希望使用一些共享资源(在我们的案例中)。因此他们需要 "coordinate" 在那里使用资源。

因此,当您听到 "Synchronization" 这个词时,请想到 coordinate/cooperate 这个词。希望你现在明白了。我故意不解释 SynchronizationContext 因为你说你已经知道了。

更新:第二,我也应该在这里为您提供一些细节,在类比方面:

希望你现在明白,什么是同步!就 SynchronizationContext 而言,它只是一个 class,允许您与现有 UI 线程的资源(主要是 UI 组件和状态)。通常实现的方式是将消息放入 UI 线程的队列中,而不是自己直接修改 UI 状态。

免责声明:不要自己尝试走路的比喻,我只是在试图弄清楚我的腿的时候减掉了 2 卡路里 synchronization