C# 排队函数未在退出队列时执行
Dequeue不调用排队函数,控制台显示有1个操作排队 此代码: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
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();