-2

私はTryEnterCriticalSectionは一度しか呼び出せないと思います。だから私はちょうどTryEnterCriticalSectionEnterCriticalSectionの違いは何かを知りたい。EnterCriticalSection()とTryEnterCriticalSection()とInitializeCriticalSection()とInitializeCriticalSectionAndSpinCount()の違い

#include<windows.h> 
CRITICAL_SECTION csOpsPrintData; 

void CreateCriticalSectionAsNeccessary() 
{ 

    InitializeCriticalSection(&csOpsPrintData); 
    InitializeCriticalSectionAndSpinCount(&csOpsPrintData,5); 

    EnterCriticalSection(&csOpsPrintData); 
    TryEnterCriticalSection(&csOpsPrintData); 

} 

答えて

2

差がTryEnterCriticalSectionに関係なく、スレッドがクリティカルセクションの所有権 を取ることができるまで、EnterCriticalSectionブロックしながら、クリティカルセクション、 の所有権を取得したかどうか、直ちに を返すことです。

MSDN、Bingさんはあなたの友人です。

TryEnterCriticalSectionは、呼び出しが成功して所有権がスレッドによって要求された場合は0以外の値を返します(EnterCriticalSectionではありません)。これが当てはまらない場合はゼロ。

関連する問題