Оберон-клуб «ВЄДАsoft» https://zx.oberon.org/forum/ |
|
Аналог Delay или Sleep в BB? https://zx.oberon.org/forum/viewtopic.php?f=34&t=313 |
Страница 1 из 1 |
Автор: | Dambas [ 16 май 2017, 22:26 ] |
Заголовок сообщения: | Аналог Delay или Sleep в BB? |
Что-то не ищется, а надо...WinApi.Sleep не пригоден. Работа идет с графикой. Проще говоря, нужно тормознуть черепашку из школьной сборки. |
Автор: | Zorko [ 17 май 2017, 00:33 ] |
Заголовок сообщения: | Re: Аналог Delay или Sleep в BB? |
Наверно и нету такого аналога. ББ-то событийный. В нём не принято одной процедуре забирать время работы надолго, потому что поток, как правило, только один, и занимать его слишком долго нельзя. Говорю "как правило", потому что в ББ два потока, но это сделано чтобы меню было "живым" при "замерзании" процедуры. Ещё есть сороутины, есть отложенные процедуры. Спросите-ка на форуме OberonCore, там скорее помогут. |
Автор: | Saferoll [ 23 май 2017, 20:27 ] |
Заголовок сообщения: | Re: Аналог Delay или Sleep в BB? |
Может быть поможет WinAPI GetTickCount? В конце обработчика выясняем текущее время, прибавляем к нему какое-то смещение и запоминаем этот момент в будущем в какой-то переменной (планируем). В начале обработчика сравниваем текущее время и запланированное. Если время еще не наступило,то ничего не делаем, иначе выполняем обработку. Это гарантирует, что обработчик срабатывает не чаще, чем задано. И в то же время обработчик не тормозит других. |
Автор: | ivan_denisov [ 06 июл 2017, 03:55 ] |
Заголовок сообщения: | Re: Аналог Delay или Sleep в BB? |
Блокировки - это не хорошо. Поглядите отложенные действия Services.Action. "Квантуйте" свой процесс вычисления, и вызывайте эти "кванты" через Servises.DoLater(action, Services.Ticks()+msDelay). |
Страница 1 из 1 | Часовой пояс: UTC + 2 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |