Реализация очереди в C #

Я имею дело с аппаратным ресурсом, который может обрабатывать только 1 команду за раз. Я собираюсь раскрыть некоторые из его функций API через веб-интерфейс, поэтому очевидно, что есть большая вероятность, что за один раз будет отправлено более одной команды. Я решил, что постановка этих команд в очередь при их отправке - лучший способ гарантировать последовательную обработку.

Я планирую реализовать очередь в статическом классе. Код программной части веб-приложения добавит команду, вызвав метод, соответствующий нужной команде. Я хочу, чтобы вызывающий метод ждал, пока он не получит результат своей команды, поэтому никакой асинхронной магии не требуется.

  1. Правильно ли я делаю? Есть ли способ лучше?

  2. Как мне начать реализацию очереди на C # (обычно я работаю с Java)? Я предполагаю, что мне понадобится какое-то событие типа Event, чтобы сигнализировать о добавлении задания, и обработчик для инициирования обработки очереди ...

Я использую .NET Framework 4.

7
задан uscere90 2 June 2011 в 18:32
поделиться