C# 排队函数未在退出队列时执行

C# 排队函数未在退出队列时执行,c#,queue,C#,Queue,Dequeue不调用排队函数,控制台显示有1个操作排队 此代码: private static Queue<Action> changeMaterialTask = new Queue<Action>(); static void Main(string[] args) { AddAction(() => Test()); while (changeMaterialTask.Count > 0) { Console.W

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

此代码:

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");
}
私有静态队列changeMeterialTask=new Queue();
静态void Main(字符串[]参数)
{
AddAction(()=>Test());
而(changeMaterialTask.Count>0)
{
Console.WriteLine(“即将发布”);
changeMaterialTask.Dequeue();
Console.WriteLine(“我已经排队”);
}
}
公共静态void AddAction(操作任务)
{
changeMaterialTask.Enqueue(任务);
}
公共静态无效测试()
{
控制台。写入线(“工作”);
}
当排队函数在出列时执行时,在控制台上打印“已工作”。

该方法返回您从队列中出列的项目,在本例中为
操作。然后,您需要对其进行处理,例如:

var action = changeMaterialTask.Dequeue();
action();
该方法返回已从队列中退出队列的项,在本例中是一个
操作
。然后,您需要对其进行处理,例如:

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