Sdílet prostřednictvím


CMultiLock::Lock

Volání této funkce můžete získat přístup k jedné nebo více zdrojů řízena objekty synchronizace poskytnuty CMultiLock konstruktor.

DWORD Lock( 
   DWORD dwTimeOut = INFINITE, 
   BOOL bWaitForAll = TRUE, 
   DWORD dwWakeMask = 0  
);

Parametry

  • dwTimeOut
    Určuje dobu čekání pro objekt synchronizace je k dispozici (signalizováno následným tichem).Pokud NEKONEČNÉ, Lock bude čekat, dokud objekt je signalizováno před návratem následným tichem.

  • bWaitForAll
    Určuje, zda musí stát nyní současně před návratem signalizovat čekala všechny objekty.Pokud FALSE, Lock vrátí, pokud některý z objektů očekáván je signalizováno následným tichem.

  • dwWakeMask
    Určuje další podmínky, které mohou přerušit čekat.Úplný seznam možností pro tento parametr viz MsgWaitForMultipleObjects v .

Vrácená hodnota

Pokud Lock selže, vrátí – 1.V případě úspěchu vrátí jednu z následujících hodnot:

  • Mezi WAIT_OBJECT_0 a WAIT_OBJECT_0 + (počet objektů – 1)

    Pokud bWaitForAll je TRUE, všechny objekty jsou obvykle předávány signály (k dispozici).Pokud bWaitForAll je FALSE, vrácená hodnota – WAIT_OBJECT_0 je index pole objektů objekt, který je signalizováno následným tichem (k dispozici).

  • WAIT_OBJECT_0 + (počet objektů)

    Události v dwWakeMask je k dispozici v podprocesu vstupní fronty.

  • Mezi WAIT_ABANDONED_0 a WAIT_ABANDONED_0 + (počet objektů – 1)

    Pokud bWaitForAll je TRUE, všechny objekty jsou obvykle předávány signály a alespoň jeden z objektů je objekt mutex přerušené.Pokud bWaitForAll je FALSE, vrácená hodnota – WAIT_ABANDONED_0 je index pole objektů mutex přerušené objektu, který přesvědčí čekat.

  • WAIT_TIMEOUT

    Časový limit zadaný v dwTimeOut bez čekání následných vypršela.

Poznámky

Pokud bWaitForAll je TRUE, Lock , jakmile budou všechny objekty synchronizace signalizováno současně následným tichem úspěšně vrátí.Pokud bWaitForAll je FALSE, Lock vrátí jako jeden nebo více objektů synchronizace bude signalizováno následným tichem.

Pokud Lock není schopen vrátit okamžitě, bude čekat více než v milisekundách dwTimeOut parametr před návratem.Pokud dwTimeOut je NEKONEČNÉ, Lock nevrátí, dokud je získal přístup k objektu nebo podmínku zadanou v dwWakeMask byl splněn.Jinak, pokud Lock bylo možné získat objekt synchronizace, vrátí úspěšně; Pokud ne, vrátí funkce chybu.

Požadavky

Záhlaví: afxmt.h

Viz také

Referenční dokumentace

Třída CMultiLock

Graf hierarchie