C# C/mono中的简单异步队列数据结构

C# C/mono中的简单异步队列数据结构,c#,mono,queue,data-structures,C#,Mono,Queue,Data Structures,我想编写一个需要任务队列的应用程序。我应该能够将任务添加到此队列中,并且这些任务可以异步完成,一旦完成,应该可以从此队列中移除 如果提供唯一的队列位置标识符,数据结构还应使获取队列中任何任务的信息成为可能 数据结构还应随时提供队列中的项目列表 还需要一个LINQ接口来管理这个队列 由于这至少在我个人观察中是许多应用程序的一个非常常见的要求,我想知道是否有任何标准数据结构可以作为c库的一部分使用,而不是从头开始编写 有什么建议吗 在我看来,您将数据结构和它设计用于跟踪的异步任务混为一谈。你确定它们

我想编写一个需要任务队列的应用程序。我应该能够将任务添加到此队列中,并且这些任务可以异步完成,一旦完成,应该可以从此队列中移除

如果提供唯一的队列位置标识符,数据结构还应使获取队列中任何任务的信息成为可能

数据结构还应随时提供队列中的项目列表

还需要一个LINQ接口来管理这个队列

由于这至少在我个人观察中是许多应用程序的一个非常常见的要求,我想知道是否有任何标准数据结构可以作为c库的一部分使用,而不是从头开始编写


有什么建议吗

在我看来,您将数据结构和它设计用于跟踪的异步任务混为一谈。你确定它们必须是一样的吗


不满足运行异步任务的要求?您可以维护从列表或哈希集派生的自己的结构来跟踪结果,并且可以提供方便的方法来清除已完成的项、检索挂起的项等等

为什么不将完成的项目移动到第二个bucket中,或者在完成后移动到一个同步列表中?这将使待处理的桶保持良好和小。此外,你所描述的并不是严格意义上的队列……是的。它不是一个队列。但是我不知道这个数据结构叫什么。我想要一个TaskManager数据结构。是否有任何内置的C库可以帮助实现这一点?ThreadPool足以让我对项目进行排队。正如您在评论的第二部分中正确地提到的,我可以用这些方便的方法编写自己的类。但是想知道c库是否已经有一些类提供了这个功能。。