Monitor和Lock的區別

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()
        { 
            //做具體的事情
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章