Example #1
0
 /// <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);
         }
     }
 }
Example #2
0
        /// <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);
            }
        }