Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 21 дек 2024, 19:14

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Аналог Delay или Sleep в BB?
СообщениеДобавлено: 16 май 2017, 22:26 
Не в сети

Сообщения: 1
Что-то не ищется, а надо...WinApi.Sleep не пригоден. Работа идет с графикой. Проще говоря, нужно тормознуть черепашку из школьной сборки.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Аналог Delay или Sleep в BB?
СообщениеДобавлено: 17 май 2017, 00:33 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Наверно и нету такого аналога. ББ-то событийный. В нём не принято одной процедуре забирать время работы надолго, потому что поток, как правило, только один, и занимать его слишком долго нельзя. Говорю "как правило", потому что в ББ два потока, но это сделано чтобы меню было "живым" при "замерзании" процедуры.

Ещё есть сороутины, есть отложенные процедуры. Спросите-ка на форуме OberonCore, там скорее помогут.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Аналог Delay или Sleep в BB?
СообщениеДобавлено: 23 май 2017, 20:27 
Не в сети
Администратор
Аватара пользователя

Сообщения: 273
Откуда: Россия
Может быть поможет WinAPI GetTickCount? В конце обработчика выясняем текущее время, прибавляем к нему какое-то смещение и запоминаем этот момент в будущем в какой-то переменной (планируем). В начале обработчика сравниваем текущее время и запланированное. Если время еще не наступило,то ничего не делаем, иначе выполняем обработку. Это гарантирует, что обработчик срабатывает не чаще, чем задано. И в то же время обработчик не тормозит других.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Аналог Delay или Sleep в BB?
СообщениеДобавлено: 06 июл 2017, 03:55 
Не в сети
Администратор
Аватара пользователя

Сообщения: 108
Блокировки - это не хорошо. Поглядите отложенные действия Services.Action. "Квантуйте" свой процесс вычисления, и вызывайте эти "кванты" через Servises.DoLater(action, Services.Ticks()+msDelay).


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
© VEDAsoft Oberon Club