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; }