InterlockedIncrement Nutzung

Beim Lesen über die Funktion InterlockedIncrement sah ich die Bemerkung, dass die übergebene variable muss angepasst werden, auf einem 32-bit-Grenze. Normalerweise habe ich den code gesehen nutzt die InterlockedIncrement wie diese:

class A
{
 public:
   A();
   void f();

 private:
  volatile long m_count;
};

A::A() : m_count(0)
{
}

void A::f()
{
  ::InterlockedIncrement(&m_count);
}

Nicht den oben genannten code ordnungsgemäß in multi-Prozessor-Systemen oder sollte ich noch mehr für diese Pflege?

InformationsquelleAutor Naveen | 2009-03-05
Schreibe einen Kommentar