public T Lock <T>(LockDelegate <T> action)
 {
     lock (LockPool[LockKey])
     {
         return(action.Invoke());
     }
 }
 public void Lock(LockDelegate action)
 {
     lock (LockPool[LockKey])
     {
         action.Invoke();
     }
 }