public static bool LockEvent(this LocationComponent self, long id, long key, long timeout = 60000)
 {
     if (!self.lockEventDict.ContainsKey(key))
     {
         self.lockEventDict.Add(key, new Queue <long>());
     }
     if (self.lockEventHashSet.Contains(key))
     {
         // 鎖住
         self.lockEventDict[key].Enqueue(id);
         return(false);
     }
     self.lockEventHashSet.Add(key);
     self.lockEventDict[key].Enqueue(id);
     self.ExpireLockEvent(id, key, timeout).Coroutine();
     return(true);
 }