深度监控类

时间:2012-06-25 20:39:54

标签: multithreading

所有

你能解释一下有关Monitor Class的内容,请更详细地了解代码吗?

if (Monitor.TryEnter(CashDrawers.lockObject))
    {
        try
        {
            // Work here                    
        }
        finally
        {
            Monitor.Exit(lockObject);
        }
    }

谢谢, CK

1 个答案:

答案 0 :(得分:1)

不确定这是否是你要找的......但

您在问题中发布的代码是

的非阻止版本
lock(CashDrawers.LockObject)
{
     //work here
}

意味着如果能够在第一次尝试时获得锁定,它只会“工作”。如果其他东西已经有锁,那么你的代码将不会做任何事情。我假设这个代码是在CashDrawers类中编写的,否则你可能有一个转录错误,你需要在你输入的同一个对象上使用Moniter.Exit。

您是否正在寻找有关同步的解释?如果是这样,那超出了我在答案中所写的范围。有关.net。

中的一些常规同步信息,请查看http://www.albahari.com/threading/part2.aspx