CMutex

Объект класса CMutex представляет "мьютекс"  -объект синхронизации, которая позволяет один поток взаимно исключающими доступ к ресурсу. Мьютексы полезны, когда только один поток в тот момент можно позволить изменять данные или другой управляемый ресурс. Например Добавление узлов к связанный список представляет собой процесс, который следует разрешать только одним потоком одновременно. С помощью объекта CMutex для управления связанный список, в тот момент только один поток может получить доступ к списку.

Чтобы использовать объект CMutex , CMutex объект создайте при необходимости. Укажите имя мьютекса, вы желаете ждать, и что ваше приложение должно сначала его владельцем. Затем можно получить доступ к mutex когда конструктор возвращает. Звоните CSyncObject::Unlock когда вы сделаны доступ к контролируемым ресурсов.

Альтернативный метод для использования CMutex объектов является добавление переменную типа CMutex качестве члена данных класса для элемента управления. В ходе строительства управляемого объекта вызовите конструктор члена данных CMutex , если мьютекс изначально принадлежит имя мьютекса (если он будет использоваться между границами процессов) и желаемого атрибуты безопасности.

Для доступа к ресурсам, контролируемом CMutex объектов таким образом, сначала создайте переменную любого типа CSingleLock или введите CMultiLock в функции-члена доступа вашего ресурса. Затем вызовите функцию-член Lock объекта блокировки (например, CSingleLock::Lock). На данный момент ваш поток будет либо получить доступ к ресурсу, подождать для ресурса будет выпущен и получить доступ, или для ресурса будет выпущен и время ожидания, неспособность получить доступ к ресурсу. В любом случае ваш ресурс к поточно-образом. Чтобы освободить ресурс, используйте функцию-член объекта блокировки Unlock (например, CSingleLock::Unlock), или разрешить блокировку объекта выпадают из сферы.

Для получения дополнительных сведений об использовании объектов CMutex , см. статью Многопоточность: как использовать классы синхронизации в Руководстве по Visual C++ программист.

# include lt;afxmt.h>

Члены классаБазовый класс | Иерархическая схема

Пример  Образца MFC МЬЮТЕКСОВ

Index