|
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.
Weidong has been an information system professional since 1990. He has a Master's degree in Computer Science, and is currently a MCSD .NET