Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Frage zu CSingleLock und CMutex

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
14.12.2009, 12:10 Uhr
cmos



Hallo,
ich habe eine Frage bezüglich CSingleLock und dem CMutex.

Ich habe eine Klasse die eine statische Methode enthält die in einem Threadläuft,
also die ThreadProc sozusagen. Ich habe zwei Klassenmember vom Typ CMutex um
einen Lesezugriff zu synchronisieren, da ich innerhalb des Threads lesen möchte und
auch außerhalb. Resourcenbedingt darf immer nur einer Lesen. Wenn ich außerhalb des Threads schreibe darf innerhalb des Threads auch ersteinmal nicht gelesen werden.

Meine Write - Methode sieht in etwa so aus


Code:
Write(char* pszBuffer)
{
  CSingleLock WriteLock(&m_hWriteMutex);

  WriteLock.Lock();
  //schreiben
  WriteLock.UnLock();
}



In der Thread Funktion steht dann in etwa


Code:
static UINT ThreadProc(LPVOID lParam)
{
   CSingleLock WriteLock(&m_hWriteMutex);

   if(!WriteLock.IsLocked)
   {
      //Lesen
   }
}



Meien frage ist, geht das überhaupt so. Bezieht sich der Aufruf von
CSingleLock WriteLock(&m_hWriteMutex) jedesmal auf mein WriteMutex
und erhält es da den aktuellen Wert oder sind das jedesmal einzelne
Sachen für sich ?

Eigentlich sollte sich das doch immer auf das Eine Mutex beziehen. Aber bei mir
scheint es so, das es jedesmal was eigenständiges ist. Denn ich habe einfach mal
das WriteMutex gelocked und danach Write() aufgerufen. Aber es wird trotzdem geschrieben.

Erzeugte Events kann ich z.B. an anderen Stellen mit OpenEvent öffnen.


Was mache ich hier falsch ?


Grüße,
cmos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: