尝试围绕如何在使用队列的C#中正确编写一些代码。
这是我写的一些伪代码:
Queue<string> queue = new Queue<string>();
static async Task SomeTask(item) {
var newTask = await GenerateNewTask();
if (newTask != null)
queue.Enqueue(newTask);
}
static void Main() {
while (queue.Count > 0) {
SomeTask (queue.Dequeue());
}
}
我正在努力学习如何在这里编写我的主要功能。队列将耗尽,但新项目将被添加,因此实际上并不起作用。
答案 0 :(得分:0)
尝试使用时锁定队列。
答案 1 :(得分:0)
.NET中的Queue<T>
类型不是线程安全的,并且不是生产者/消费者队列的最佳选择。