Показать сообщение отдельно
  #2  
Старый 13.10.2016, 19:18
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, такое написать... полное непонимания принципа потокостроения...
1. findShare должна быть в потоке. С формой должна общаться через Synchronize.
2. execute потока должно обрабатывать сообщение о прерывании потока. Фактически, если код FindShare внести в поток, то он и будет методом Execute. Внутри цикла тогда надо обрабатывать Terminated (которое свойство).
3. Организация многих потоков. Тут есть 2 варианта. Если потоков предполагается отностительно не много (ну до 20-30), то можно просто создавать их и "бросать" - сами помрут по выполнению. Если хочется иметь возможность прервать выполнение, но потоков все-равно не очень много, то придется мудрить со списком указателей на потоки и синхронизацией между ними. Если потоков получается слишком много, то придется делать очередь заданий и пул потоков (ограниченный).
Ответить с цитированием