CMutex

U&n oggetto della classe CMutex rappresenta un "mutex" nbsp; — un oggetto di sincronizzazione che permette un accesso escludono filo a una risorsa. Mutex sono utili quando un solo thread alla volta può essere permesso di modificare dati o qualche altra risorsa controllata. Ad esempio, l'aggiunta di nodi a un elenco collegato è un processo che dovrebbe essere consentito solo da un thread alla volta. Utilizzando un oggetto CMutex per controllare l'elenco collegato, un solo thread alla volta può ottenere l'accesso all'elenco.

Per utilizzare un oggetto CMutex , costruire l'oggetto CMutex quando è necessario. Specificare il nome del mutex si desidera attendere, e che l'applicazione deve inizialmente possederlo. Si può quindi accedere il mutex quando termina il costruttore. Chiamare CSyncObject::Unlock quando si è fatto l'accesso alla risorsa controllata.

Un metodo alternativo per l'utilizzo di oggetti CMutex è quello di aggiungere una variabile di tipo CMutex come membro dati alla classe che si desidera regolare. Durante la costruzione dell'oggetto controllato, chiamare il costruttore del membro dati CMutex specifica se il mutex è inizialmente proprietario, il nome del mutex (se verrà utilizzato oltre i limiti del processo) e desiderato gli attributi di protezione.

Per accedere a risorse controllate da CMutex oggetti in questo modo, prima di creare una variabile di tipo CSingleLock oppure digitare CMultiLock nella funzione di membro accesso della risorsa. Quindi chiamare la funzione di membro dell'oggetto lock Lock (ad esempio, CSingleLock::Lock). A questo punto, il thread sarà o accedere alla risorsa, attendere per essere rilasciato e ottenere l'accesso o aspettare la risorsa per essere rilasciato e time out, non riuscendo a ottenere l'accesso alla risorsa della risorsa. In ogni caso, la vostra risorsa ha avuto accesso in modo thread-safe. Per rilasciare la risorsa, utilizzare la funzione di membro dell'oggetto blocco Unlock (ad esempio, CSingleLock::Unlock) o consentire all'oggetto di serratura a cadere fuori dell'ambito.

Per ulteriori informazioni sull'utilizzo di oggetti CMutex , vedere l'articolo Multithreading: come utilizzare le classi di sincronizzazione nel manuale del programmatore di Visual C++.

# include lt;afxmt.h>

Membri della classeClasse base | Gerarchia Chart

Campio&nenbsp; Esempio MFC MUTEX

Index