Никогда не работал с потоками, нужна ваша помощь!
Требуется реализация класса на языке C#, аналогичного FixedThreadPool в Java, со следующими требованиями:
* В конструктор этого класса должно передаваться количество потоков, которые будут выполнять задачи.
* Интерфейс класса должен предоставлять методы: boolean execute(Task task, Priority priority) и void stop()
* Интерфейс Task должен содержать один метод: void execute(), который вызывается в произвольном потоке.
* Тип Priority — это перечисление из трёх приоритетов: HIGH, NORMAL, LOW. При этом во время выбора следующего задания из очереди действуют такие правила: на три задачи с приоритетом HIGH выполняется одна задача с приоритетом NORMAL, задачи с приоритетом LOW не выполняются, пока в очереди есть хоть одна задача с другим приоритетом.
* До вызова метода stop() задачи ставятся в очередь на выполнение и метод boolean execute(Task task, Priority priority) сразу же возвращает true, не дожидаясь завершения выполнения задачи; а после вызова stop() новые задачи не добавляются в очередь на выполнение, и метод boolean execute(Task task, Priority priority) сразу же возвращает false.
* Метод stop() ожидает завершения всех текущих задач (не очищая очередь).