Монитор против Mutex в С#
Возможный дубликат:
Каковы различия между различными параметрами синхронизации потоков в С#?
В чем разница между монитором и Mutex в С#?
Когда использовать монитор и когда использовать Mutex в С#?
Ответы
Ответ 1
A Monitor
управляется и более легким - но ограничивается вашим AppDomain
. A Mutex
может быть назван и может охватывать процессы (допускающие некоторые простые сценарии IPC между приложениями) и может использоваться в коде, который хочет обработать wait-handle).
Для большинства простых сценариев Monitor
(через lock
) в порядке.
Ответ 2
Хорошим источником рекомендаций по этому поводу является "Threading in С#" Джозефа Альбахари. Все содержимое доступно в Интернете. На мой взгляд, стоит прочитать всю книгу, но вы можете проверить эти части:
Хотя он не охватывает .NET 4.0 новые параллельные конструкции, это очень хорошая отправная точка.
Обновить. Книга обновлена. Теперь он охватывает параллельное программирование .NET 4.0 в часть 5.
Ответ 3
Мьютекс можно разделить между процессами и гораздо более тяжелый, чем монитор.
Используйте монитор, если вам не нужна синхронизация между границами процесса.