1.Lock是Monitor的語法糖。
2.Lock只能針對引用類型加鎖。
3.Monitor能夠對值類型進行加鎖,實質上是Monitor.Enter(object)對值類型裝箱。
4.Monitor還有其他的一些功能。
示例代碼:
class Program
{
private static object obj = new object();
public void LockSomething()
{
lock (obj)
{
dosomething();
}
}
public void MonitorSomeThing()
{
try
{
Monitor.Enter(obj);
dosomething();
}
catch(Exception ex)
{
}
finally
{
Monitor.Exit(obj);
}
}
public void dosomething()
{
//做具體的事情
}
}