![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Многопоточное приложение для работы с файлами помогоите... [D7, WinXP]
vip60 © (2006-01-17 21:04:00)Помогите с решением такой задачи.
Необходимо создать многопоточное приложение по обработке текстовых файлов-Есть локальная папка в которую через определенное время поступают файлы. Приложение обрабатывает их и переносит в другую.
Проблема: Как сделать так чтобы каждый поток брал только один файл на обработку...то есть возникает проблема разделение приходящего файла на много потоков...может получится так что один и тот же файл будет взят на обработку разными потоками т.е. файл-критический ресурс....
Заранее благодарен!!!!
Leonid Troyanovsky (2006-01-18 08:42:00) [1]
> vip60 © (17.01.06 21:04)
> Проблема: Как сделать так чтобы каждый поток брал только
> один файл на обработку...то есть возникает проблема разделение
> приходящего файла на много потоков...может получится так
> что один и тот же файл будет взят на обработку разными потоками
> т.е. файл-критический ресурс....
Только один поток следит за появлением новых файлов и передает
другим их имена. Другие потоки открывают файлы эксклюзивно.
--
Regards, LVT.
Defunct (2006-01-18 02:07:00) [2]алгоритм можно изобразить так:
1. Просканировать каталог "входящих".
2. Поочереди переносить каждый файл "входящего" каталога в каталог "обработанных файлов" (либо в "промежуточный").
3. После переноса очередного файла запустить поток по его обработке.
4. Если использовался "промежуточный" каталог, то после окончания работы очередного потока перенести обработанный им файл в каталог "обработанных файлов".
5. Sleep( долго )
6. Goto 1.
Открывать файл можете в fmShareExclusive режиме, таким образом избавившись от возможности "случайного" повторного открытия.