/// <summary> /// Performs an atomic clear and enqueue of the specified item /// </summary> /// <param name="item"></param> public void ReplaceWith(CleanupWorkItem item) { lock (_sync) { queue.Clear(); queue.AddLast(item); } }
public CleanupWorkItem Pop() { lock (_sync) { CleanupWorkItem i = queue.Count > 0 ? queue.First.Value : null; if (i != null) { queue.RemoveFirst(); } return(i); } }
/// <summary> /// Queues the item if no other identical items exist in the queue. Returns true if the item was added. /// </summary> /// <param name="item"></param> /// <returns></returns> public bool QueueIfUnique(CleanupWorkItem item) { lock (_sync) { bool unique = !queue.Contains(item); if (unique) { queue.AddLast(item); } return(unique); } }
public void Insert(CleanupWorkItem item) { lock (_sync) { queue.AddFirst(item); } }
public bool Exists(CleanupWorkItem item) { lock (_sync) { return(queue.Contains(item)); } }
public void Queue(CleanupWorkItem item) { lock (_sync) { queue.AddLast(item); } }
public void Queue(CleanupWorkItem item) { lock (_sync) { queue.AddLast(item); } }
public void Insert(CleanupWorkItem item) { lock (_sync) { queue.AddFirst(item); } }
public bool Exists(CleanupWorkItem item) { lock (_sync) { return queue.Contains(item); } }
/// <summary> /// Performs an atomic clear and enqueue of the specified item /// </summary> /// <param name="item"></param> public void ReplaceWith(CleanupWorkItem item) { lock (_sync) { queue.Clear(); queue.AddLast(item); } }
/// <summary> /// Queues the item if no other identical items exist in the queue. Returns true if the item was added. /// </summary> /// <param name="item"></param> /// <returns></returns> public bool QueueIfUnique(CleanupWorkItem item) { lock (_sync) { bool unique = !queue.Contains(item); if (unique) queue.AddLast(item); return unique; } }