Я пишу простое приложение для загрузки фотографий с использованием IOC. Существует довольно простой список шагов. Получить список фотографий для скачивания. Проверьте это, проверьте это, затем загрузите. Загрузка может быть выполнена через FTP в некоторых случаях и через http в других, и через веб-сервис в других.
Что меня интересует, так как я новичок в земле МОК, - это то, что является хорошим шаблоном для ускорения 10 «потоков загрузки» с использованием лучших практик / шаблонов разработки МОК.
Я использую Castle Windsor, но могу легко переключиться на StructureMap или Spring, так как я нахожусь в начале процесса.
РЕДАКТИРОВАТЬ: Чтобы было ясно, я понимаю, как создать интерфейс IPhotoDownloader и затем 3 конкретных класса Photodownloader, но я не совсем понимаю, как управлять потоками и как узнать, когда все сделано во всех потоках и продолжить.
Второе редактирование в ответ на комментарии:
Насколько я понимаю, было бы плохо напрямую ссылаться на конкретный класс в приложении IOC, поэтому, если бы я захотел, например, использовать ThreadPool.QueueUserWorkItem для многопоточности моего загрузчика, как бы я это сделал. Буду ли я просто использовать контейнер для определения конкретного класса, который я хочу, в каждом потоке внутри моего метода запуска потока? как:
void StartThead(){
PhotoRetriever retriever = container.Resolve<PhotoRetriever>();
}