Прерывание синхронизации синхронизации событий в Visual C # 2010 - PullRequest
0 голосов
/ 14 апреля 2010

В списке Срочных изменений Visual C # 2010 есть запись о «Синхронизации событий», в которой говорится, что теперь вы должны создать локальную копию делегата для проверки на нулевое значение (перед вызовом) в Чтобы избежать состояния гонки. Разве это уже не был образец «лучшей практики»?

Имеет ли это изменение какое-либо значение в обсуждении StackOverflow по C # Событиям и безопасности потоков ?

1 Ответ

1 голос
/ 14 апреля 2010

Ну, вам не нужно было брать копию, если вы использовали именно тот код, который они получили - потому что он блокировался на this.Однако:

  • блокировка на this - плохая идея, чтобы начинать с
  • , удерживая блокировку во время выполнения обработчиков событий, как правило, плохая идея

Таким образом, код, который был уже плохой практикой, теперь активно нарушается.Хо гул. нормальная реализация событий (которая не удерживает блокировку, но делает копирование переменной) этим не изменяется.

См. КрисЗапись в блоге Burrows о передовой практике для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...