Originally posted by insertAlias
thanks
using System;
using System.Collections.Generic;
namespace QueueV2
{
public delegate void QueueV2EventHandler(object sender, EventArgs e);
public class QueueV2<T> : Queue<T>
{
#region Custom Events
public event QueueV2EventHandler ItemEnqueued;
public event QueueV2EventHandler ItemDequeued;
protected virtual void OnItemEnqueued(EventArgs e)
{
ItemEnqueued(this, e);
}
protected virtual void OnItemDequeued(EventArgs e)
{
ItemDequeued(this, e);
}
#endregion
#region Original Methods
public new void Enqueue(T item)
{
base.Enqueue(item);
OnItemEnqueued(new EventArgs());
}
public new T Dequeue()
{
T value = base.Dequeue();
OnItemDequeued(new EventArgs());
return value;
}
#endregion
}
}
QueueV2<string> qv2 = new QueueV2<string>(); qv2.ItemEnqueued += new QueueV2EventHandler(qv2_ItemEnqueued); qv2.ItemDequeued += new QueueV2EventHandler(qv2_ItemDequeued);
void qv2_ItemDequeued(object sender, EventArgs e)
{
//whatever
}
void qv2_ItemEnqueued(object sender, EventArgs e)
{
//whatever
}
Comment