|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.03.2014, 21:12 | #1 |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
Автоматическая очередь потоков
Как сделать очередь, подобной Dоwnlоаd Маstеr?
Например: _всего(Max) активных потоков разрешено ~5 _на запуск потоков всего ~15 _как освободилось место, запускаются следующие потоки, пока не закончатся те, которые отмечены на закачку В реальном модуле потока используется sslHTTPCLi или idHTTP. Интересует только очередь. Вложение: простой пример для отладки |
10.03.2014, 22:41 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Запустить первые 5. Поток сообщает о своем завершении - запускается следующий, если есть что запускать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
10.03.2014, 22:58 | #3 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Семафоры, ИМХО, самое то.
Код из Button3Click нужно вынести в отдельный поток и добавить туды семафоры. Примерно так Код:
Код:
Последний раз редактировалось eoln; 10.03.2014 в 23:08. |
12.03.2014, 18:40 | #4 |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
Без дополнительного потока получилось.
Код:
Последний раз редактировалось Alter; 12.03.2014 в 18:43. |
13.03.2014, 00:09 | #5 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Да, можно просто манимулировать счётчиком.
Создать семафор например, на 1000, а начальный индекс задать на 996. Что-то вроде Код:
Код:
Можно другой вариант - в TMyThread.Execute сразу после WaitForSingleObject вызывать ф-ию, которая проверяет не превышает ли число активных потоков разрешённого значения, и если это так, то в этом же потоке снова выполняется WaitForSingleObject. Но, ИМХО, костылями попахивает И этот костыль надо обернуть в критичискую секцию, например Последний раз редактировалось eoln; 13.03.2014 в 00:12. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
вводим 15 элементов в очередь, затем выводим на экран эту очередь и добавил в очередь еще один элемент. Потом удаляем любой элемен | Xumera | C++ Builder | 2 | 07.12.2013 13:56 |
Автоматическая сортировка | Proton-x | Microsoft Office Excel | 1 | 06.02.2013 22:09 |
автоматическая загрузка js в IE | world12_tk | JavaScript, Ajax | 3 | 03.06.2011 18:41 |
Автоматическая регистрация | stepennwolf | PHP | 2 | 21.08.2010 20:39 |
Автоматическая группировка | anester | Microsoft Office Excel | 0 | 08.06.2010 14:07 |