Странно что просят. Я имел ввиду синхронный.
Я себе слабо представляю применение асинхронного. И те, кто просят видимо тоже.
Проще вызвать другую копию кликера со своим скриптом. Кстати я так и делаю.
канонический пример. "ой а как сделать что бы каждые 6 секунд нажимался Ф1 а каждые 10 - Ф2". в принципе задача решаема введением счетчика секунд. но это нужно две переменные, два условия.
а можно завести две совершенно независимые нити. одна будет лупить Ф1, вторая Ф2.
этот пример еще можно сделать на условиях. а вот если в одной из веток нужно будет искать картинку. это же не быстро. а в другой ветке нужно по прежнему лупить четко по Ф2 без задержек всяких. тут уже только на потоках.
А для части тех задач что я говорил асинхронный даже вреден. Вызываемая подпрограмма должна же в случае чего менять последовательность выполнения основной. Как это потом делать если они будут сами по себе.
ну а тут сама прелесть программирования. как хочешь так и выкручивайся, изобретай велосипед
правда ничего такого радикального обычно в таймеры не пихают. потому что очень сложно отслеживать логику. таймеру может приспичить выполниться в любом месте программы, особенно зная тормознутость винды.
а вот тот подход что ты сейчас делаешь, распихивая вызов подрограмм - он более нагляден и более логичен потмоу что точно известно когда вызовется подпрограмма