我不确定我是否正确理解。 TryEnterCriticalSection
只被调用一次,它不像 EnterCriticalSection
那样坚持?
例如。如果我写类似的东西
if(TryEnterCriticalSection (&cs))
{
//do something that must be synh
LeaveCriticalSection(&cs);
}
else
{
//do other job
}
//go on
如果
TryEnterCriticalSection
返回 false 部分 do something that must be synh
将永远不会完成,并且 do other job
部分将被执行,然后 go on
? 最佳答案
你猜对了。 TryEnterCriticalSection()
被调用一次,并且只尝试进入临界区一次。如果临界区被锁定,则检查后返回 false。
通常,如果函数返回 bool 值或整数,则 if/else 子句的行为如下:
if (function()) //function() is called once here, return result is checked
{
//executed if function() returned true or non-zero
}
else
{
//executed if function() returned false or zero
}
//executed whatever happens
关于c++ - TryEnterCriticalSection,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6829592/