gpt4 book ai didi

c# - Monitor.TryEnter 始终返回 true,即使在 Monitor.Enter 之后也是如此

转载 作者:行者123 更新时间:2023-11-30 14:14:49 28 4
gpt4 key购买 nike

我想我遗漏了一些关于 Monitor.EnterMonitor.TryEnter 正确行为的信息。这是我编写的一段代码,用于将问题与其余代码分开:

object lockObj = new object();
bool result = Monitor.TryEnter(lockObj);
Console.Write(result);

结果始终为 true。这里没有惊喜。

object lockObj = new object();
Monitor.Enter(lockObj);
bool result = Monitor.TryEnter(lockObj);
Console.Write(result);

但这一次也是true。那么 lockObjMonitor.Enter 之后是否被锁定?请给我一些新的看法。

最佳答案

这是因为您在同一个线程中执行此操作。

还要记住 ( MSDN ):

It is legal for the same thread to invoke Enter more than once without it blocking; however, an equal number of Exit calls must be invoked before other threads waiting on the object will unblock

关于c# - Monitor.TryEnter 始终返回 true,即使在 Monitor.Enter 之后也是如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11154401/

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