/// <summary> /// 移除队列成员 /// </summary> /// <param name="key">缓存键</param> /// <param name="value">移除信息的 value 对象</param> /// <returns>如果移除成功或key不存在则返回 true,否则返回 false</returns> public bool Remove(string key, out SenparcMessageQueueItem value) { lock (MessageQueueSyncLock) { if (MessageQueueDictionary.ContainsKey(key)) { return(MessageQueueDictionary.TryRemove(key, out value)); //MessageQueueList.Remove(key); } else { value = null; return(true); } } }
/// <summary> /// 添加队列成员 /// </summary> /// <param name="key"></param> /// <param name="action"></param> public SenparcMessageQueueItem Add(string key, Action action) { lock (MessageQueueSyncLock) { //if (!MessageQueueDictionary.ContainsKey(key)) //{ // MessageQueueList.Add(key); //} //else //{ // MessageQueueList.Remove(key); // MessageQueueList.Add(key);//移动到末尾 //} var mqItem = new SenparcMessageQueueItem(key, action); MessageQueueDictionary.TryAdd(key, mqItem); return(mqItem); } }