Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: TNT on March 04, 2019, 09:41:10 PM

Title: Много потоков
Post by: TNT on March 04, 2019, 09:41:10 PM
Есть возможность запускать несколько одинаковых потоков, которые будут отличаться только параметром (парамертами)?
Допустим мне нужно по событию запустить поток, который по завершению остановится. Таких потоков может быть одновременно много.
Есть возможность описать один поток и запускать несколько экземпляров этого потока или единственный вариант, это заранее описывать в скрипте сотню потоков и запускать их по мере необходимости?
Title: Re: Много потоков
Post by: Космич on March 04, 2019, 09:59:26 PM
только если 1 раз написать нужный кусок кода и запускать его копии
Title: Re: Много потоков
Post by: Космич on March 04, 2019, 10:14:40 PM
можно заморочиться с предварительным копированием файла и редактированием его строк перед запуском с последующим удалением после загрузки скрипта
Title: Re: Много потоков
Post by: TNT on March 05, 2019, 12:53:04 PM
Code: [Select]
$thr="thr1"
SetThread($thr, 1)
Переменные нельзя использовать для запуска тредов?

Code: [Select]
IF($n=1)
SetThread(thr1, 1)
END_IF
IF($n=2)
SetThread(thr2, 1)
END_IF
...
Так что-ли выкручиваться?
Title: Re: Много потоков
Post by: Космич on March 05, 2019, 01:41:46 PM
попробуй без скобок

Code: (clickermann) [Select]
$thr=thr1
SetThread($thr, 1)

Code: (clickermann) [Select]
FOR($count = 0, $count < 4)
   SETTHREAD(STRCONCAT(THR_, CHAR(65+$count)), 1)
END_CYC

WHILE($count ! 0)
   WAITMS(5)
END_CYC

HALT

THREAD(THR_A, 0)
   PRINT("A")
   INC($count, -1)
   SETTHREAD(THR_A, 0)
END_THREAD

THREAD(THR_B, 0)
   PRINT("B")
   INC($count, -1)
   SETTHREAD(THR_B, 0)
END_THREAD

THREAD(THR_C, 0)
   PRINT("C")
   INC($count, -1)
   SETTHREAD(THR_C, 0)
END_THREAD

THREAD(THR_D, 0)
   PRINT("D")
   INC($count, -1)
   SETTHREAD(THR_D, 0)
END_THREAD