Psw (21 Март 2012 - 21:23) писал:
Ничего не понял на спех
Зачем мне по времени шедулить если я могу прямо в бесконечный циклер (номинальная скорость порядка секунды на оборот) вставить опрос события (нажатия кнопки на клаве или раб листе) ?
Проблема в том что
выполняющийся VBA скрипт вешает эхель мёртво и тот не осознаёт что были клики мыши по кнопам

ответ на вопрос подчеркнут
Это Виндофс
Если используется зацикливание то процесс выбирает столько ресурсов системы сколько она позволяет (зависит от версии виндовс и множества других факторов)
а это может быть и 100 процентов и тогда будет практически полный висяк
поэтому я и написал что
зацикливание это зло
Если
процесс работает по времени то ожидание следующего запуска не требует выделения системой значительных ресурсов
и эти
ресурсы отдаются другим программам либо просто не расходуются и система ждет "что хотите хозяин?"
и это правильный подход
Система всеравно не сможет выполнить свои задачи быстрее при зацикливании
потому при зацикливании просто паузы между повторами теоретически равны 0 а на самом деле
при вызове по времени если не делать паузы совсем микроскопическими достигается баланс между скорострельностью программы и требами системы
Psw (21 Март 2012 - 21:23) писал:
Ты думаешь что Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure" будет запускаться в отдельном потоке ?
нет я такого не говорил
поток он один
разделение на потоки делается совсем по другому а в данной задаче оно ваще не нужно
Psw (21 Март 2012 - 21:23) писал:
Мне другой знакомец тоже предложил ковырять многопоточность, но на мой взгляд - непонятно нахрена она нужна если я и в основном циклере могу опрашивать события, важно кто их будет порождать и как я их буду получать в скрипт VBA ?
Короче ты не мог бы опробовать своё предложение, я же текст приложил скрипта полный ?
я OnTime использовал в некоторых задачах все там нормально
ваще если тебе нужно пинговать я не совсем понимаю нафига ваще нужен excel
обычный VBS (vbscript) примеры в сети найти можно готовые
Psw (21 Март 2012 - 21:23) писал:
А по поводу "бесконечные циклы=зло" - ядро любой много задачной операционки или проги - бесконечный циклер

Так что ... Мы все злые

видишли то что ты называешь бесконечные циклы и то что приводишь в качестве примера inkey$
это реализуется в системе не совсем одинаково и последствия поэтому разные
в одном случае прога зажирает все ресурсы и тупо все начинает тормозить в другом случае цикл на языке высокого уровня проработан челами которые делают компиляторы и интерпретаторы так что на самом деле для операционки зацикливания нету
если ты будешь писать на низком уровне тогда можно спорить и рассуждать а код на VBA тут лучше не ходить на грабли по которым толпы уже ходили
в данном случае ты просишь Excel выполнить для тебя код VBA а там дальше такая начинается
какафония

лучше просто не вникать