purebasic.info

PureBasic forum
Текущее время: Сб фев 16, 2019 10:48 pm

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




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: setTimer()
СообщениеДобавлено: Вс янв 27, 2019 8:55 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 771
Благодарил (а): 76 раз.
Поблагодарили: 23 раз.
Пункты репутации: 5
функция может работать по разному, вот только разницы не понял
SetTimer_(#W, 123, 1000, 0)
или
SetTimer_(#W, 123, 1000, @refreshTime())
сюда приходит в обоих случаях
Case #WM_TIMER
refreshTime()

ну в чём разница? есть конкретные случаи когда один из вариантов лучше?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: setTimer()
СообщениеДобавлено: Вс янв 27, 2019 9:53 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6470
Благодарил (а): 27 раз.
Поблагодарили: 210 раз.
Пункты репутации: 57
newJS писал(а):
функция может работать по разному, вот только разницы не понял
SetTimer_(#W, 123, 1000, 0)
или
SetTimer_(#W, 123, 1000, @refreshTime())
сюда приходит в обоих случаях
Case #WM_TIMER
refreshTime()

ну в чём разница? есть конкретные случаи когда один из вариантов лучше?

Ну вроде как разница очевидна.
с #WM_TIMER можно прописать хоть 10 процедур, и не только процедур, а любой код.
Но если несколько таймеров, то уже надо их идентифицировать и разделять какой именно сработал.
Зато с указателем на процедуру можно сделать хоть 10 таймеров без явного увеличения кода.

_________________
read-only ¯\_(ツ)_/¯


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: setTimer()
СообщениеДобавлено: Пн янв 28, 2019 6:29 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 771
Благодарил (а): 76 раз.
Поблагодарили: 23 раз.
Пункты репутации: 5
и в главном цикле меньше проверок со воей функцией


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: setTimer()
СообщениеДобавлено: Пн янв 28, 2019 9:37 am 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 746
Благодарил (а): 2 раз.
Поблагодарили: 37 раз.
Пункты репутации: 9
newJS писал(а):
и в главном цикле меньше проверок со воей функцией

Есле в главном цикле то надо приоритет таймеру отдать и поставить Case #WM_TIMER
в самый верх что бы не перебирать значения что бы каждый раз добраться до Case #WM_TIMER(он ведь тикает постоянно). :D :roll:


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: setTimer()
СообщениеДобавлено: Вт янв 29, 2019 6:46 pm 
Не в сети
профессор

Зарегистрирован: Вс июл 05, 2009 5:55 pm
Сообщений: 356
Благодарил (а): 1 раз.
Поблагодарили: 13 раз.
Пункты репутации: 0
:)
SetTimer_ задает время.
@refreshTime() вызывает отдельную процедуру обработки, если ноль то невызывает.
в общий поток событий всегда посылается сообщение од таймера,
поиск места обработчика это не столь длительная работа, ну потратит он одну миллионную сек.
но есть проблема, когда проц занят и даже так ему просто нравится оставлять пропущеные "тики".
Гдето была тема секундомера, я там описывал и давал код решения этой проблемы.
вот вроде нашел: viewtopic.php?f=1&t=4985

_________________
искатель истины


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: setTimer()
СообщениеДобавлено: Ср янв 30, 2019 5:22 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 771
Благодарил (а): 76 раз.
Поблагодарили: 23 раз.
Пункты репутации: 5
мне было интересно есть ли разница между этими вариантами и в чём она, когда какой вариант более правильный
точность не интересовала


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: setTimer()
СообщениеДобавлено: Пт фев 08, 2019 5:04 pm 
Не в сети
профессор

Зарегистрирован: Вс июл 05, 2009 5:55 pm
Сообщений: 356
Благодарил (а): 1 раз.
Поблагодарили: 13 раз.
Пункты репутации: 0
newJS писал(а):
мне было интересно есть ли разница между этими вариантами и в чём она, когда какой вариант более правильный
точность не интересовала

Оба варианта верные,
разве как говорил Сергейчик таймер в процедуре возможно обрабатывается как отдельный поток, что может негрузить твою прогу, но это нужно проверять

_________________
искатель истины


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

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


Кто сейчас на форуме

Сейчас этот форум просматривают: AZJIO и гости: 12


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

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB