Quel est le navire relation entre CRITICAL_SECTION et CCriticalSection

voix
0

Quel est le navire relation entre CRITICAL_SECTION et CCriticalSection. est CCriticalSection une enveloppe de CRITICAL_SECTION?

BTW:

Je pense que le code suivant est meanless parce que le CS est pas globale, il initiale à chaque fois avant de verrouillage () ne peut donc pas bloquer le XXX, est-il?

int func
{
CCriticalSection cs;
cs.Lock();
XXX
cs.Unlock();
}

Merci beaucoup!

Créé 27/08/2009 à 03:14
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
2

Oui , le MFC CCriticalSection section est juste une enveloppe autour d' un CRITICAL_SECTION Win32.

Cela vaut pour à peu près tous les MFC, est un vaste ensemble de classes wrapper autour des fonctionnalités standard Win32.

Quant à votre exemple de code, oui l'utilisation d'une section critique dans ce contexte n'a pas de sens. Quelle section critique ne se apparente à un mutex nommé, il assure qu'une ressource est accessible uniquement par un seul thread à la fois. L'utilisation appropriée d'une section critique serait aussi un objet accessible par plusieurs threads, puis lors de l'utilisation d'une ressource qui ne peut pas être utilisé par plus d'un fil à la fois:

MyGlobalCS.Lock();

// Do important work on resource

MyGlobalCS.Unlock();

Notez également que s'il est difficile d'obtenir la section critique dans un emplacement partagé , vous pouvez utiliser un nom mutex à la place.

Créé 27/08/2009 à 03:24
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more