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