using System; using System.Collections.Generic; using System.Threading; namespace SchoolSample.Common { public class ActionQueue { public ActionQueue() { _queue = new Queue<Action<object>>(); } private Queue<Action<object>> _queue; /// <summary> /// Add one action /// </summary> /// <param name="action"></param> public void Add(Action<object> action) { _queue.Enqueue(action); } /// <summary> /// Clear all remaining actions /// </summary> public void Clear() { _queue.Clear(); } /// <summary> /// Pick one action from queue, and queues /// in ThreadPool for execution /// </summary> /// <returns></returns> public bool BeginOneAction() { if (_queue.Count > 0) { Action<object> item = _queue.Dequeue(); ThreadPool.QueueUserWorkItem(new WaitCallback(item)); return true; } return false; } } }
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.
This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)