Author Topic: Потоки  (Read 101042 times)

0 Members and 7 Guests are viewing this topic.

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Потоки
« Reply #60 on: April 03, 2015, 04:41:50 PM »
А - ну эт понятно! Я сейчас на игре попробовал - не видит... ))
Я не ду... Потому и не бу...

agrx

  • Зашел в гости
  • *
  • Posts: 17
    • View Profile
Re: Потоки
« Reply #61 on: April 03, 2015, 05:15:59 PM »
Можно ли выполнять скрипт на несколько окон при помощи потоков? Или придется запускать несколько копий программы и  в каждой выбирать свой процесс?

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Потоки
« Reply #62 on: April 03, 2015, 09:12:27 PM »
Можно ли выполнять скрипт на несколько окон при помощи потоков? Или придется запускать несколько копий программы и  в каждой выбирать свой процесс?
Ну чуток выше глаза подними и прочитай...
Я не ду... Потому и не бу...

KERK

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Re: Потоки
« Reply #63 on: April 03, 2015, 11:22:12 PM »
KERK
Да, привязать сразу к двум окнам нельзя.
Например функция Getscreen ,в любом потоке,
будет скриншотить последнее привязанное окно, а не 2-а сразу.
Можно наверное помучиться и сделать чтоб программа поочередно выполняла действия сначала на одном окне, потом на другом, все время привязывая и отвязывая.
Только от потоков в этом случае пользы не будет.

Лучше использовать 2-е программы сразу, вот тебе изолированные потоки.

Две программы эт хорошо я примерно так и попробовал но если в одном кликере делаю привязку к окну и все прекрасно работает я делаю прозрачность 0 и не мешает работаю на компе а он клацает. Вот со вторым окном проблема) запускаю второй кликер меняю комбинацию чтоб не совпадало с первым кликером (если в первом Alt+ то во втором ставлю Ctrl+) Если второй кликер привязываю ко второму окну то работать не хочет) Без привязки работает. (координаты в привязанном состоянии свои, отвязанном состоянии свои)
Приходится когда комп нужен ставить в одно окно одним кликером с привязкой а когда свободен ставлю двумя потоками на два окна.

А - ну эт понятно! Я сейчас на игре попробовал - не видит... ))

Не знаю но у меня BlueStacks видит и привязывается без проблем. Может я не пользуюсь теми функциями что не видит но пока все что мне надо в привязки видит и делает.

Можно ли выполнять скрипт на несколько окон при помощи потоков? Или придется запускать несколько копий программы и  в каждой выбирать свой процесс?

Как писал выше у меня работает в одном кликере два потока в разных окнах делается свой поток но окна размещены рядом друг с другом на рабочем столе. Один недостаток в это время на компе ничего делать не получается))

АНТИКЛАН

  • Активный участник
  • ***
  • Posts: 111
    • View Profile
Re: Потоки
« Reply #64 on: November 15, 2015, 02:57:36 AM »
Можно ли программно из скрипта получать информацию о состоянии потока вкл/выкл? Если да, то как?

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Потоки
« Reply #65 on: November 15, 2015, 03:38:51 AM »
Можно ли программно из скрипта получать информацию о состоянии потока вкл/выкл? Если да, то как?

« Last Edit: November 15, 2015, 03:43:36 AM by Hito »
Я не ду... Потому и не бу...

АНТИКЛАН

  • Активный участник
  • ***
  • Posts: 111
    • View Profile
Re: Потоки
« Reply #66 on: November 15, 2015, 02:22:39 PM »
дело в том, что в большенстве случаев этого ненужно, гораздо проще когда поток должен быть включён посылать команду на его включение независимо от состояния потока и выключать соответствующим образом, даже если он уже на паузе. Но, как известно "Охота , пуще неволи!"
Code: (clickermann) [Select]
THREAD(thr_name2) 

   IF(iskeydown(#F2)=1)
      BEEP(800,200)
      WHILE(iskeydown(#F2)=1)
         WAITMS(100)
      END_CYC
      IF($_stop = 0)
         IF($hint = 6)
            HINTPOPUP(" ","пауза")
         END_IF
         SETTHREAD (thr_name1,0)
         SETTHREAD (thr_name,0)
         INC($_stop,1)
      ELSE
         IF($hint = 6)
            HINTPOPUP(" ","продолжить")
         END_IF
         logwrite("продолжить")
         SETTHREAD (thr_name1, 1)
         SETTHREAD (thr_name, 1)
         INC($_stop,-1)
         $time593 = 0
      END_IF
   END_IF
   IF(($_stop = 1)&($time593 < $_time_t))
      IF($hint = 6)
         HINTPOPUP(" ","включена пауза")
         $time593 = $_time_t + 45
      END_IF
   END_IF
   
END_THREAD
в потоке проверяется нажатие клавиши F2 первое нажатие ставит два других потока на паузу, второе продолжить работу. если пауза включена и сообщения в трей разрешены в настройках то выводится сообщение HINTPOPUP(" ","включена пауза") если состояние потоков нужно узнать програмно, то всегда можно обратиться к значению переменной $_stop

$_stop это зарезервированная переменная? Если да то где вы о ней информацию нашли? В документации она вроде не описана в списке зарезервированных переменных. И еще. Её можно проверять только из проверяемого потока или из любого места? Если из любого, то как проверить нужную переменную если потоков несколько?
« Last Edit: April 15, 2018, 06:44:04 PM by АНТИКЛАН »

АНТИКЛАН

  • Активный участник
  • ***
  • Posts: 111
    • View Profile
Re: Потоки
« Reply #67 on: November 15, 2015, 02:36:36 PM »
Что происходит при включении включенного потока и выключении выключенного?

Code: (clickermann) [Select]
START:

SETTHREAD (THREAD_NAME, 1)
WAITMS(5)

GOTO(START)
Code: (clickermann) [Select]
START:

SETTHREAD (THREAD_NAME, 0)
WAITMS(5)

GOTO(START)

АНТИКЛАН

  • Активный участник
  • ***
  • Posts: 111
    • View Profile
Re: Потоки
« Reply #68 on: November 15, 2015, 05:25:59 PM »
$_stop  - обычная переменная, название может быть любым. проверять и изменять можно в любом потоке, ограничений нет.

А ну так я тоже могу. Я думал вы нашли что-то внутри языка кликермана. :D

Что происходит при включении включенного потока и выключении выключенно?

НИЧЕГО.
Code: (clickermann) [Select]
THREAD(thr_name1)
   LOGWRITE ("1поток включен")
   // тело потока   
   waitms(3000)
END_THREAD

THREAD(thr_name2)
   LOGWRITE ("2поток включен")
   // тело потока   
   waitms(3000)
END_THREAD

LOGWRITE ("команда включить 1 поток")
SETTHREAD (thr_name1, 1)
WAIT(2)

LOGWRITE ("команда вЫключить 2 поток")
SETTHREAD (thr_name2, 0)
WAIT(2)

Я спрашивал не как включить/выключить поток, а как работает сам механизм включения/выключения внутри кликермана. :D

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Потоки
« Reply #69 on: November 15, 2015, 08:23:52 PM »
Я спрашивал не как включить/выключить поток, а как работает сам механизм включения/выключения внутри кликермана. :D

Странный вопрос... "Механизм" выполняет команды, прописанные в скрипте. Как любая программа...
Я не ду... Потому и не бу...

АНТИКЛАН

  • Активный участник
  • ***
  • Posts: 111
    • View Profile
Re: Потоки
« Reply #70 on: November 16, 2015, 04:19:45 AM »
Странный вопрос... "Механизм" выполняет команды, прописанные в скрипте. Как любая программа...

Конкретно меня интересует, если поток уже запущен и приходит команда на его запуск что делает кликер? Тупо перезапускает его или проверяет и оставляет в покое ничего не делая? Как сильно могут сказаться постоянные перезапуски потоков на производительности? Я просто ввожу в свои скрипты возможности автоматического включения/отключения функций при разных условиях и мне необходимо знать такие нюансы которые я описал.
« Last Edit: April 15, 2018, 06:48:41 PM by АНТИКЛАН »

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Потоки
« Reply #71 on: November 16, 2015, 05:57:22 AM »
Конкретно меня интересует, если поток уже запущен и приходит команда на его запуск что делает кликер? Тупо перезапускает его или проверяет и оставляет в покое ничего не делая?

Ну, если ты сам это проверить за 5 минут не в состоянии и вместо этого, готов сутками ждать ответа на форуме, то наверное кодинг не для тебя...

https://www.youtube.com/watch?v=Wv3wAKfdaX8&feature=youtu.be

Вывод сам сделаешь, или помочь...?
Но учти вот эту тему - http://crapware.aidf.org/forum/index.php?topic=1986.msg11881#msg11881
« Last Edit: November 16, 2015, 06:32:53 AM by Hito »
Я не ду... Потому и не бу...

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Потоки
« Reply #72 on: November 16, 2015, 10:31:08 AM »
Конкретно меня интересует, если поток уже запущен и приходит команда на его запуск что делает кликер? Тупо перезапускает его или проверяет и оставляет в покое ничего не делая? Как сильно могут сказаться постоянные перезапуски потоков на производительности? Я просто ввожу в свои скрипты возможности автоматического включения/отключения функций при разных условиях и мне необходимо знать такие нюансы которые я описал.
Перезапуска нет. Команда просто игнорируется.


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Потоки
« Reply #73 on: November 16, 2015, 10:32:03 AM »
Это не команда на запуск а скорее переключатель 0 - не работает, 1 - работает.
К сожалению пока потоки нельзя перезапускать а только ставить на паузу.

АНТИКЛАН

  • Активный участник
  • ***
  • Posts: 111
    • View Profile
Re: Потоки
« Reply #74 on: November 16, 2015, 08:12:21 PM »
Перезапуска нет. Команда просто игнорируется.

Вот это я и хотел узнать. :D
« Last Edit: April 15, 2018, 06:49:30 PM by АНТИКЛАН »