C # Что означает «Синхронизация» в «SynchronizationContext»? - PullRequest
0 голосов
/ 31 августа 2018

Я понимаю, что такое синхронизация, но я просто не понимаю, что означает слово "синхронизация" в этом слове. У вас есть идеи?

Спасибо

1 Ответ

0 голосов
/ 31 августа 2018

Синхронизация или лучше для вашего понимания, давайте сначала поймем, что означает слово Синхронизация .

Не соглашайтесь с определением словаря, оно вас сейчас смущает. Вместо этого давайте возьмем упрощенную аналогию:

Когда мы идем, наши ноги синхронизированы! То есть они coordinate/cooperate вместе, чтобы завершить действие под названием ходьба. Когда левая нога касается земли, правая нога покидает ее (или находится в процессе ухода), и когда правая нога касается ее наоборот.

Ключевой вывод: обе ноги имеют неявную координацию что другие начнут (т.е. покинут землю) только тогда, когда первый заземлен.

Так что говорить с точки зрения потоков и общих ресурсов. Эта же аналогия применима. Все потоки хотят работать с каким-то общим ресурсом (в нашем случае это земля). При этом им необходимо «координировать» там использование ресурса.

Поэтому, когда вы слышите слово «Синхронизация», вспомните слово coordinate/cooperate. Надеюсь, ты понимаешь сейчас. Я намеренно не объясняю SynchronizationContext, так как вы заявляете, что уже знаете это.

Обновление : хотя, во-вторых, я должен предоставить вам некоторые детали и здесь, с точки зрения аналогии:

Надеюсь, теперь вы понимаете, что означает синхронизация! Говоря в терминах SynchronizationContext, это просто класс, который позволяет вам иметь синхронизацию (то есть координацию / взаимодействие) с ресурсами существующего потока пользовательского интерфейса (которые в основном являются компонентами пользовательского интерфейса и их состоянием). Обычно это достигается путем помещения сообщений в очередь потока пользовательского интерфейса вместо непосредственного изменения состояния пользовательского интерфейса.

Отказ от ответственности : Не пытайтесь самостоятельно провести аналогию с ходьбой, я только что потерял 2 калории, пытаясь выяснить synchronization.

моей ноги.
...