Решение задачи: Нужно написать заготовку программы на языке C#.
Есть класс ParallelImageProcessor и у этого класса есть публичный метод List ProcessImage(Bitmap image), который вызывается из множества потоков. Методу на вход передаётся изображение, а на выходе он возвращает набор дескрипторов List<byte[]>. Один дескриптор - это byte[]. Этот метод внутри себя вызывает обработчики изображений. Есть два типа обработчиков - CPUProcessor, который на вход принимает одно изображение обрабатывает его на CPU в одном потоке и GPUProcessor, который на вход может принять массив изображений и обрабатывает их эффективно только если их много (например, больше заданной константы GPUThreshold = 10). Экземпляров класса CPUProcessor может быть несколько (в зависимости от настроек), а GPUProcessor всего один. Требуется написать внутреннюю логику метода ProcessImage. Он должен обрабатывать изображения на CPUProcessor до тех пор, пока размер внутренней очереди не перевалит за GPUThreshold и после этого вызвать GPUProcessor. Потоки, которые вызывают ProcessImage остаются в ожидании до завершения обработки изображения. Т.е. вызов ProcessImage синхронный