TryEnterCriticalSection

TryEnterCriticalSection

我不确定我是否正确理解。 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/

10-13 07:11