Я имею дело с аппаратным ресурсом, который может обрабатывать только 1 команду за раз. Я собираюсь раскрыть некоторые из его функций API через веб-интерфейс, поэтому очевидно, что есть большая вероятность, что за один раз будет отправлено более одной команды. Я решил, что постановка этих команд в очередь при их отправке - лучший способ гарантировать последовательную обработку.
Я планирую реализовать очередь в статическом классе. Код программной части веб-приложения добавит команду, вызвав метод, соответствующий нужной команде. Я хочу, чтобы вызывающий метод ждал, пока он не получит результат своей команды, поэтому никакой асинхронной магии не требуется.
Правильно ли я делаю? Есть ли способ лучше?
Как мне начать реализацию очереди на C # (обычно я работаю с Java)? Я предполагаю, что мне понадобится какое-то событие типа Event, чтобы сигнализировать о добавлении задания, и обработчик для инициирования обработки очереди ...
Я использую .NET Framework 4.