private void LogLockCallback(IEnumerable collection, object context, Action accessMethod, bool writeAccess) { if (writeAccess) { using (WriteLocker locker = new WriteLocker(_logListLocker)) { accessMethod?.Invoke(); } } else { using (ReadLocker locker = new ReadLocker(_logListLocker)) { accessMethod?.Invoke(); } } }
public static WriteLocker FromBaseObject(BaseObject baseObj) { if (baseObj == null || baseObj.NativeObject == IntPtr.Zero) { return(null); } WriteLocker obj = baseObj as WriteLocker; if (object.Equals(obj, null)) { obj = new WriteLocker(CreatedWhenConstruct.CWC_NotToCreate); obj.BindNativeObject(baseObj.NativeObject, "CWriteLocker"); obj.IncreaseCast(); } return(obj); }
public BaseObject Create() { WriteLocker emptyInstance = new WriteLocker(CreatedWhenConstruct.CWC_NotToCreate); return(emptyInstance); }
public RwLocker() { _ReadLocker = new ReadLocker(_Locker); _WriteLocker = new WriteLocker(_Locker); _UpgradeLocker = new UpgradeLocker(_Locker); }