モインモイン、
関数「DosEnterCritSec()」および「DosExitCritSec()」に相当するMS Visual C(6.0)が必要です。これは、2つのスレッドが囲まれたコードを同時に実行しないことを保証します。
誰かが私を正しい方向に向けてくれませんか?
どうもありがとう、ピーター
EnterCriticalSection()/ LeaveCriticalSection()
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682608(v=vs.85).aspx
私はよく知らないがDoesEnterCritSec()
、DosExitCritSec()
それに基づいている:
2つのスレッドが同封のコードを同時に実行していないこと。
EnterCriticalSection()
とを使用できますLeaveCriticalSection()
。各スレッドは、の同じインスタンスを使用する必要がありますCRITICAL_SECTION
。
例については、クリティカルセクションの使用を参照してください。
ええ、あなたはクリティカルセクションを探しているでしょう。
どこかで、多くの場合、起動時に、初期化する必要があります。
CRITICAL_SECTION mutex;
InitializeCriticalSection(&mutex);
次に、再入可能コードで:
EnterCriticalSection(&mutex);
/* Do some thread-safe stuff */
LeaveCriticalSection(&mutex);
ボーナスとして、同じスレッドに同じクリティカルセクションを複数回入力した場合、(同じ回数だけ離れている限り)自分自身をロックアウトすることはありません。