Оберон-клуб «ВЄДА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/