Собственно с основами я разобрался (IMG:
style_emoticons/default/smile.gif) Теперь возник вопрос сложнее: а как бы мне создать несколько потоков действий для одного окна?
Для примера: в программе есть шаблон действий, которые я выполняю постоянно в цикле, с той скоростью с которой успевает реагировать программа. Однако периодически возникает необходимость выполнения других действий. Причём этих действий имеется несколько десятков, но их необходимость достаточно редка(иногда реже раза в час) и я определяю её по появившейся картинке. Поиск десятка картинок на экране занимает секунд 5-10 времени(точно не засекал), так что если я его включаю в основной цикл, то основной шаблон, который до этого я успевал сделать действия 2-3 раза в секунду, начинает происходить раз в те самые 5-10 секунд(т.е. потеря производительности в 20-30 раз), пока он проверит остальные условия. Мне же хотелось бы, чтобы он в одном потоке делал шаблон, а во втором искал условия, и только по их нахождению останавливал шаблон и совершал другие действия.
При создании двух скриптов на одно окно столкнулся с проблемой - т.к. при нахождении дополнительный условий вторым скриптом, первый не останавливает свою работу (а и там и там идут переходы по нескольким менюшкам), то в итоге в лучшем случае получается фигня - когда два скрипта по очереди тыкают по нужным им кнопкам, а ещё очень часто они одновременно пытаются что-то сделать в программе, при этом намертво подвешивая её.
Т.е. мне нужна какая-то синхронизация, либо между двумя потоками в одном скрипте(чтобы один действовал, второй мониторил, и когда второй находил условия для действий, первый уступал ему на время возможность совершить действия, либо же сам действовал по другому алгоритму), либо синхронизация между несколькими скриптами, чтобы они обменивались данными и не мешали друг другу работать в одном окне.
Кто подскажет, как это можно организовать буду очень благодарен (IMG:
style_emoticons/default/smile.gif) Особенно если в виде кода(хотя можно и просто список функций (IMG:
style_emoticons/default/smile.gif) если что разберусь как-нить или задам вопросы по непонятному), как создавать потоки, если это возможно, и передать переменную(или хотябы просто сигнал-прерывание) из одного потока или скрипта в другой.
З.Ы, если возможно оба варианта - и потоки и передача переменных из скрипта в скрипт, то буду благодарен, если укажете оба варианта т.к. уверен что в будущем они оба мне пригодятся (IMG:
style_emoticons/default/smile.gif) (я уже запланировал написать ещё как минимум ещё 4 скрипта)