当前位置:首页 > Windows程序 > 正文

【C#】【Thread】Monitor和Lock

2021-03-29 Windows程序

Monitor.Enter(obj);// 启动锁 Monitor.TryEnter(obj, 1000);//启动锁,也是区别于Lock的功能,多了一个时间设置,就是等待多少时间后如果还不能进入,则取消此次操作。Lock则会一直等待下去。 Monitor.Wait(obj);// 会放弃当前线程对资源的所有权,,让别的线程到lock进来。然后当别的线程代码里Pulse一下(让原线程进入到等待队列),之后从Waint()后面继续运行下去
Monitor.Pulse(obj);// 恢复原放弃资源控制权的线程,使其重新进入到等待队列中,下次直接从Wait()后继续运行。
Monitor.PulseAll(obj);// 恢复所有曾今放弃资源控制权的线程,使其重新进入到等待队列中
Monitor.Exit(obj);
// 结束锁

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/69919.html