ReleaseMutex используется, чтобы позволить другому потоку получить мьютекс. Он должен вызываться только в том случае, если вы приобрели мьютекс (названный WaitOne
и приобрели его или получили через конструктор). Важное замечание ReleaseMutex
вызовет исключение, если вы не получили мьютекс.
Закрыть используется для очистки ресурсов, выделенных путем объявления объекта мьютекса, независимо от того, заблокирован ли он на нем или нет, если вы приобрели мьютекс, он его освободит (эквивалентно вызову ReleaseMutex
. Если вы планируете заблокировать мьютекс для всего приложения (т. Е. Использовать его для обеспечения единственного экземпляра вашего приложения), то я бы обернул его в оператор использования, подобный примеру Джозефа Албахари руководство по потокам (необходимо прочитать). Ссылка на второй раздел, прокрутите вниз до части Mutex, чтобы увидеть пример.