[JFWRus] Re[13]: Возможно ли написать такой скрипт?..
Вечер добрый, Анатолий.
>>> у меня тогда работала функция Pause в цикле, впрочем и Delay вела себя анологично.
i> Тогда это проблема не Pause, а цикла...
Я и не говорил, что эта проблема паузы... Проблема была паузы в
цикле.... А по отдельности они работали очень неплохо:-)
i> Вы переоцениваете (или недооцениваете) джоз:) Все-таки это не ядро операционной
i> системы, чтобы делить процессорное время между
i> процессами и потоками.
Анатолий, причём здесь это? Я не говорил об этом, я говорил о том, что
поток джоза, может вызвав функцию Sleep с параметром 0 заставить
систему отработать все ждущие в очереди потоки, отдав своё время на
это и не более.
То есть система выделила джозу время на работу, а он хочет подождать и в тоже
время не останавливая свой поток заставить систему проиграть ждущие в
очереди потоки за счёт своего времени. По-моему это и делается в
течении 100 миллисекунд в функции Pause.
i> Джоз, конечно, может приостановить порожденный им поток
i> (точнее этот поток может приостановить свою работу
i> до тех пор, пока породивший его поток не отсемафорит ему работать дальше),
но
i> приостановить, а потом позволить дальше работать,
i> например, потокам в браузере... это вряд ли.
Почему? Я могу из своего приложения без проблем
приостоновить и запустить любой поток - хоть в браузере, хоть в любом другом
приложении.
Смотрите API функции SuspendThread и ResumeThread...
i> Анализируя сообщения,
i> можно получить представление о состоянии приложения. Например, если очередь
его
i> сообщений пуста(или в ней нет сообщений от
i> дочерних контролов), то можно полагать, что приложение отработало событие
и теперь
i> стабильно.
Неет, в этом случае можно пологать, что приложение получило событие, а
вот что и самое главное сколько времени уйдёт на его обработку ну
никак нельзя предположить.
i> Это, конечно, не значит, что джоз поступает именно так, но это значит, что
возможность
i> контролировать происходящие события
i> имеется.
Конечно, джоз и контролирует... Не секрет, что лвиную долю информации
о происходящем получают из хуков, но не всё так просто.
И кстати, откуда Вы взяли, что джоз в паузе ждёт сообщения? В описании
функции сказано, что выполнение скрипта приостанавливается и джоз
отдаёт своё время приложениям, заметте не активному, а всем.
Дальше читаем описание delay. Здесь сказано, что джоз приостанавливает
работу на определённое время и эквивалентен Pause(1). Но имеет отличие
в том, что не отдаёт своё время другим приложениям. Ни одного слова о
сообщениях, только о времени. Оно и логично, работа приложений основана
не на одних сообщениях.
Да и трудно проанализировать что-то опираясь на сообщения, нужно
просто приостоновить работу, а в случае с паузой отдать и своё время, и подождать,
пока приложение сделает свои
дела.
>>> По описанию и смыслу работы Pause это будет как раз то, что надо...
i> По-моему, это ближе к Delay...
Так по описанию они и есть суть одно, за исключением того, что в паузе
ещё отдаётся приложением время самого скрипта.
i> Впрочем, джоз весьма загадочная штука (порой загадочнее, чем женщины:).
Точно, но нужно позновать второе и первое заодно;-)
--
С уважением, Sergey.
***
Это сообщение No1748
было разослано для 225 участников дискуссионного листа
[JFWRus] Re[13]: Возможно ли написать такой скрипт?..