c# - C# 中 Queue<T> 的入队事件

标签 c# .net events delegates .net-4.0

我是事件和委托(delegate)的新手。如何为 Queue<T> 类型的对象实现入队事件?

我正在使用 C# 和 .Net 4.0

最佳答案

你可以用你自己的类来封装Queue类,比如:

class MyQueue<T>
{
    private readonly Queue<T> queue = new Queue<T>();     
    public event EventHandler Enqueued;     
    protected virtual void OnEnqueued()     
    {         
        if (Enqueued != null) 
        Enqueued(this, EventArgs e);     
    }     
    public virtual void Enqueue(T item)     
    {         
        queue.Enqueue(item);         
        OnEnqueued();     
    }     
    public int Count 
     {
             get 
             { 
                     return queue.Count; 
             }
     }
    public virtual T Dequeue()     
    {
            T item = queue.Dequeue();         
            OnEnqueued();
            return item;
        }
} 

关于c# - C# 中 Queue<T> 的入队事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3836311/

相关文章:

c# - 是否在可扩展的客户端-服务器应用程序上使用多线程

c# - 如何在表达式树中实例化和初始化动态对象?

java - 无法从子框架调用小程序中的重绘

javascript - 如何让 jquery 选择器在更改处理程序中看到更新的 dom

python - 使用按钮事件 tkinter 在 Canvas 中创建图像

c# - 在 Excel 中打开 .dat(制表符分隔文件),另存为 .xls

c# - 浏览器页面最小化/恢复down状态时asp.net页面调整

c# - 为什么我的 C# 应用程序在多线程单元上运行?

c# - 无法解析程序集或 Windows 元数据文件 "Mono.Android.dll"

c# - 从范围 '' 引用类型为 '' 的变量 '',但未定义