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