c# Monitor
生活随笔
收集整理的這篇文章主要介紹了
c# Monitor
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Monitor主要方法TryEnter、Enter、Exit
lock關鍵字基于Monitor.Enter,Monitor.Exit 實現
static void Main(string[] args){for (int j = 0; j < 10; j++){int k = j;Task.Run(() =>{Show(k);});}Console.ReadKey();}private static readonly object obj = new object();private static void Show(int num){bool lockTaken = false;//是否獲得了該鎖//Monitor.TryEnter(obj, 2000, ref lockTaken);//等待鎖時間,超過2000毫秒就不在等待獲取鎖Monitor.TryEnter(obj, -1, ref lockTaken);//獲取鎖,等同于Monitor.Enter(obj)/* TryEnter不阻塞線程,不會造成死鎖,Enter會阻塞,可能造成死鎖 */if (lockTaken){Console.WriteLine($"{DateTime.Now}");try{Console.WriteLine($"{num} 開始");Thread.Sleep(1100);Console.WriteLine($"{num} 結束");}finally{Monitor.Exit(obj);//釋放鎖}}else{}}?
總結
以上是生活随笔為你收集整理的c# Monitor的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图像处理之EXIF信息
- 下一篇: NSIS添加everyone权限