Beispiel #1
0
 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();
         }
     }
 }
Beispiel #2
0
                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);
                }
Beispiel #3
0
                public BaseObject Create()
                {
                    WriteLocker emptyInstance = new WriteLocker(CreatedWhenConstruct.CWC_NotToCreate);

                    return(emptyInstance);
                }
Beispiel #4
0
 public RwLocker()
 {
     _ReadLocker    = new ReadLocker(_Locker);
     _WriteLocker   = new WriteLocker(_Locker);
     _UpgradeLocker = new UpgradeLocker(_Locker);
 }