c# - 排队函数不执行出队

标签 c# queue

Dequeue 不调用排队函数,控制台显示有 1 个 Action 排队。

这段代码:

private static Queue<Action> changeMaterialTask = new Queue<Action>();

static void Main(string[] args)
{
    AddAction(() => Test());
    while (changeMaterialTask.Count > 0)
    {
        Console.WriteLine("About to deque");
        changeMaterialTask.Dequeue();
        Console.WriteLine("I've dequeued");
    }
}

public static void AddAction(Action task)
{
    changeMaterialTask.Enqueue(task);
}

public static void Test()
{
    Console.WriteLine("Worked");
}

当排队函数在出队时执行时在控制台上打印“工作”。

最佳答案

Queue<T>.Dequeue 方法返回您从队列中取出的项目,在本例中为 Action .然后你需要用它做一些事情,例如:

var action = changeMaterialTask.Dequeue();
action();

关于c# - 排队函数不执行出队,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57291437/

相关文章:

c# - 使用 Unity MVC Bootstrap 拆卸注入(inject)类型

c# - 掌握 Gridview 绑定(bind)

c# - 在 C# 中,一个类可以继承另一个类和接口(interface)吗?

queue - CruiseControl.NET 中的多个项目在同一队列中同时运行

c++ - 如何获取 vector 队列的前端或顶部元素?

python - 我该怎么做,以便一次只有一个线程可以查看本地json文件

c - 队列不会提取

c# - WPF ComboBox 和所选项目出现问题

c# - 如何在 asp :gridview 中动态创建列

PHP 高级作业队列