所有
你能解释一下有关Monitor Class的内容,请更详细地了解代码吗?
if (Monitor.TryEnter(CashDrawers.lockObject))
{
try
{
// Work here
}
finally
{
Monitor.Exit(lockObject);
}
}
谢谢, CK
答案 0 :(得分:1)
不确定这是否是你要找的......但
您在问题中发布的代码是
的非阻止版本lock(CashDrawers.LockObject)
{
//work here
}
意味着如果能够在第一次尝试时获得锁定,它只会“工作”。如果其他东西已经有锁,那么你的代码将不会做任何事情。我假设这个代码是在CashDrawers类中编写的,否则你可能有一个转录错误,你需要在你输入的同一个对象上使用Moniter.Exit。
您是否正在寻找有关同步的解释?如果是这样,那超出了我在答案中所写的范围。有关.net。
中的一些常规同步信息,请查看http://www.albahari.com/threading/part2.aspx