Простая асинхронная структура данных очереди в C # / моно - PullRequest
0 голосов
/ 07 апреля 2010

Я хочу написать приложение, которому нужна очередь задач.Я должен иметь возможность добавлять Задачи в эту очередь, и эти задачи могут завершаться асинхронно (и должны быть удалены из этой очереди после завершения)

Структура данных также должна позволять получать информацию о любой задаче.в пределах очереди предоставлен уникальный идентификатор позиции-очереди.

Структура данных также должна в любое время предоставлять список элементов в очереди.

Интерфейс LINQ для управления этой очередью также будет желательным.

Поскольку это очень распространенное требование для многих приложений (по крайней мере, по моим личным наблюдениям), я хочу знать, есть ли какие-либо стандартные структуры данных, которые доступны как часть библиотеки c #, вместо того, чтобы писать что-то изцарапина

Есть указатели?

1 Ответ

0 голосов
/ 08 апреля 2010

Мне кажется, что вы объединяете структуру данных и асинхронную задачу, которую она предназначена для отслеживания. Вы уверены, что они должны быть одинаковыми?

Не удовлетворяет ли ThreadPool.QueueUserWorkItem выполнение асинхронных задач? Вы можете поддерживать свою собственную структуру, полученную из List<TaskStatus> или HashSet<TaskStatus>, чтобы отслеживать результаты, и вы можете предоставить удобные методы для очистки завершенных элементов, извлечения отложенных элементов и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...