试图围绕如何在使用队列的 C# 中正确编写一些代码。
- 队列包含一些初始项目
- 出队直到队列耗尽并调用异步函数
- async 函数可以将新项目排入队列
- 需要继续运行直到所有任务完成并且队列被耗尽
这是我写的一些伪代码:
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());
}
}
我正在为如何在这里编写我的 Main 函数而苦苦挣扎。队列会耗尽,但会添加新项目,所以这并没有真正起作用。