![]() |
Периодический вызов ф-ии
Всем привет!
такой вопрос по классу Timer: 1) Если таймер отсылает события для вызова ф-ии каждые 500 миллисекунд, то 500 миллисекунд это время между ВЫЗОВАМИ функции,или время от ЗАВЕРШЕНИЯ "предыдущей" до ВЫЗОВА "следующей"? 2) Соответственно из этого вытекает следующий: если эта функция выполняется, скажем, одну секунду, то как поведет себя таймер(т.е. следующая ф-ия вызовется сразу же после завершения предыдущей или таймер подождет полсекунды)? Заранее спасибо! |
1) Между.
2) Либо сразу выполнит, либо подожет положенные полсекунды. Сложно сказать, я не пробовал. |
>> 1) Между
между чем и чем?(там в обоих случаях между))))) |
Проделал эксперимент: в вызываемой ф-ии сделал трэйс "call from func...", в нее засунул цикл for(var i=0;i<1600000;i++){}, а далее опять трэйс "finish"(частота проца - 1,7 Мг). в конструкторе класса создал timer(1000,0)
по идее эта функция должна выполняться около одной секунды, при этом: 1) если вызов ф-ии происходи через секунду после пред. вызова,то моя ф-ия должна выводить трэйс примерно через каждую секунду; 2) если вызов происходит через секунду после окнчания выполнения функции,то трэйс должен выполняться раз в примерно две секунды. По логике вещей timer на то и timer,чтобы вызывать ф-ию с УКАЗАННОЙ частотой. Эксперимент примерно это и показывает - трэйс появляется с частотой примерно каждую 1.3 секунды. Наверно это сказывается из-за некоторой тормознутости интерпретатора AVM и ,возможно, трэйса. Если сделать ф-ию, выполняющуюся более одной секунды: создал такой код: Код:
package mainПри этом ф-ия выполняется секунды четыре и ЖДЕТ еще секунды три (это слышно по жужжания проца - сильно грузит) Логика вообще непонятна. Если не трудно,объясните плиз СПС |
Флеш однопоточен, интервал работает в том же потоке, что и функция. Т.е. выполнение функции считается единовременным (хотя это в реальности далеко не так), следовательно интервал в момент выполнения функции простаивает и не выполняет отсчет времени. В хелпе насчет таймеров и прочего написано, что эти вещи не являются точными, есть множество зависимостей, в т.ч. framerate.
|
Спасибо)
|
| Часовой пояс GMT +4, время: 11:11. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.