Classe di CMultiLock
Rappresenta il meccanismo di controllo di accesso utilizzato per controllare l'accesso alle risorse di un programma multithread.
class CMultiLock
Membri
Costruttori pubblici
Nome |
Descrizione |
---|---|
Costruisce un oggetto CMultiLock. |
Metodi pubblici
Nome |
Descrizione |
---|---|
Determina se un oggetto di sincronizzazione specifico della matrice è bloccato. |
|
Attende la matrice di oggetti di sincronizzazione. |
|
Rilascia tutti gli oggetti di sincronizzazione di proprietà. |
Note
CMultiLock non dispone di una classe base.
Per utilizzare le classi CSemaphoredi sincronizzazione, CMutexe CEvent, è possibile creare un oggetto CSingleLock o CMultiLock all'attesa e rilasciare l'oggetto di sincronizzazione.Utilizzare CMultiLock quando sono presenti più oggetti utilizzabili in un determinato momento.Utilizzare CSingleLock solo quando è necessario attendere su un oggetto alla volta.
Per utilizzare un oggetto CMultiLock , creare innanzitutto una matrice di oggetti di sincronizzazione che si desidera attesa.Successivamente, chiamare il costruttore dell'oggetto CMultiLock in una funzione membro nella classe delle risorse archiviate.Chiamare la funzione membro blocco per determinare se una risorsa è disponibile (segnalato).Se una proprietà è, procedere con il resto della funzione membro.Se non esiste alcuna risorsa disponibile, aspetti una quantità di tempo specificato per una risorsa vengano rilasciati, o restituire l'errore.Dalla di una risorsa è completa, qualsiasi chiamata la funzione Sblocca se l'oggetto CMultiLock deve essere riutilizzato, o modo l'oggetto CMultiLock da eliminato.
Gli oggetti diCMultiLock sono particolarmente utili quando un thread dispone di un numero elevato di oggetti CEvent può rispondere.Creare una matrice che contiene tutti i puntatori CEvent e chiamare Lock.In questo modo il thread in attesa finché non viene segnalato uno degli eventi.
Per ulteriori informazioni su come utilizzare gli oggetti CMultiLock , vedere l'articolo multithreading: Utilizzo delle classi di sincronizzazione.
Gerarchia di ereditarietà
CMultiLock
Requisiti
Header: afxmt.h