protected internal abstract void Release(LockedEntity key, HANDLE handle);
 private Lock Lock(LockedEntity key)
 {
     return(new LockReference(this, key, Acquire(key)));
 }
 protected internal abstract HANDLE Acquire(LockedEntity key);
 internal LockReference(AbstractLockService <HANDLE> outerInstance, LockedEntity key, HANDLE handle)
 {
     this._outerInstance = outerInstance;
     this.Key            = key;
     this.Handle         = handle;
 }