|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Запись на ЖД из MemoryStream в многопоточном приложении
Добрый день. Есть программа, которая:
- получает список УРЛ изображений - загружает изображения в MemoryStream (загрузчик ИНДИ) - записывает в указанный каталог картинки с их именами и расширениями(жпег, жиф, пнг) методом FStream.SaveToFile('Pic/'+Name+Ftype) прямо из процедуры загрузки картинки в однопоточном режиме(без использования Tthread) все работает как нужно. сейчас надо перевести загрузку картинок в многопоточный режим(10 потоков одновременно) Вопрос: - будут ли проблемы при асинхронном обращении к диску для записи файла из нескольких потоков одновременно? - если будут то какие способы нужно использовать что проблем не было? - Синхронайз или там КС вроде как для другого предназначены? |
#2
|
||||
|
||||
Можете записывать сколько угодно в параллельном режиме - винда сама разберётся, что и куда. С кучей других программ же справляется как-то...
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
Этот пользователь сказал Спасибо PhoeniX за это полезное сообщение: | ||
Pcrepair (25.08.2013)
|
#3
|
||||
|
||||
Не всегда многопоточность дает прирост производительности. В вашем проекте узкое место - дисковый контроллер, который не может на ЖД писать сразу в несколько мест, т.е. файлов. Будет он у вас метаться как ненормальный между 10 файлами и чем меньше у вас файлы, тем больше он будет суетится. Я бы вам рекомендовал для вашей задачи использовать SSD, хотя-бы как промежутояный носитель. Вот тогда я думаю вы и получите реальную многопоточность.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#4
|
||||
|
||||
имхо, интернет медленее работает, чем HDD
Пишу программы за еду. __________________ |