Lock锁
模板:
private object o = new object(); public void Work() { lock(o) { //做一些需要线程同步的工作 } }
实例:
public static class Func { private statilc List<A> _defectDraws; private static object _defectDrawsLock = new object(); // 写入数据 public static void UpdateDefectDraws(List<A> defectDraws) { lock(_defectDrawsLock)//锁 { _defectDraws = defectDraws; } } // 获取数据 public static List<A> GetDefectDraws() { List<A> defectDraws = null; lock(_defectDrawsLock)//锁 { defectDraws = _defectDraws; } return defectDraws; } // 清空缓存 public static ClearDefectDraws() { if(_defectDraws != null) { _defectDraws.Clear(); _defectDraws = null; } } }

浙公网安备 33010602011771号