CCriticalSection für zwei Klassen installieren
-
Hi,
ich möchte eine CCriticalSection installieren für den Zugriff auf mehrere Funktionen. Diese CCriticalSection muss in zwei Klassen realisiert werden, die zu unterschiedlichen Threads gehören.
Class1 { public: static CCriticalSection _critSect; }; CCriticalSection Class1::_critSect; void Class1::Init() { _critSect.Lock(); //gleicher Funktionsaufruf wie in Class2 Funktionsaufruf(); _critSect.Unlock(); } /* ************ zweite klasse *************** */ Class2 { public: static CCriticalSection _critSect; }; CCriticalSection Class2::_critSect; void Class2::Init() { _critSect.Lock(); //gleicher funktionsaufruf wie in Clas1 Funktionsaufruf(); _critSect.Unlock(); }
Mein Gefühl sagt mir, dass ich eine static Variable critSect benötige für beide Klassen.
Wie realisiert man sowas? Hat jmd ein kleines Beispiel für mich?
Gruß
Johannes
-
Des Weiteren hab ich noch eine allgemeine Frage zu den CCriticalSection:
Wenn Class2 zuerst die CCriticalSection erreicht, wartet dann die Class1 mit der Ausführung des Codes solange bis die CCriticalSection für Class1 wieder frei ist?
Also wird die Codeausführung im Thread der Class1 solange blockiert bis die notwendige CCriticalSection wieder von der Class2 freigegeben worden ist?
-
Ich habe anhand deines Beispielcodes eine ungefähre Vorstellung davon was du vermutlich machen willst.
Trotzdem: formulier deine Frage bitte nochmal so, dass man sie auch verstehen kann. Es wimmelt da nur so vor Begriffen/Formulierungen die im Zusammenhang keinen Sinn machen, die du vermutlich gewählt hast, weil die die entsprechenden Fachbegriffe nicht kennst. Bzw. die Wörter deren Benutzung sich in der Community eingebürgert hat.