gpt4 book ai didi

.net - 为什么 Threading::Monitor::TryEnter 不止一次成功?

转载 作者:行者123 更新时间:2023-12-02 06:20:33 26 4
gpt4 key购买 nike

我正在尝试保护一些多线程代码,并且正在添加单元测试以证明我已经修复了我们之前看到的损坏。

虽然我在这样做时遇到了一些意想不到的行为。为什么下面的代码在the docs时会成功表明 TryEnter 应该只在函数获得独占锁时返回 true?

const int msToWaitForLock = 1;
Object^ syncObj = gcnew Object();
bool gotLock = Threading::Monitor::TryEnter(syncObj, msToWaitForLock); // <-- this succeeds as expected
bool gotSecondLock = Threading::Monitor::TryEnter(syncObj, msToWaitForLock); // <-- but why the heck does this succeed?!

最佳答案

文档说

It is legal for the same thread to invoke Enter more than once without it blocking

参见 http://msdn.microsoft.com/en-us/library/de0542zz(v=vs.110)

关于.net - 为什么 Threading::Monitor::TryEnter 不止一次成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10983909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com