Через большие промежутки времени

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
eVe
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 15
Зарегистрирован: 02.09.2004 (Чт) 10:49

Через большие промежутки времени

Сообщение eVe » 24.11.2004 (Ср) 22:08

Привет всем!
Хорошенько перелопатил форум на интересующий меня вопрос, прежде чем задать его снова. В ч. этот вопрос обсуждался здесь: http://bbs.vbstreets.ru/viewtopic.php?t ... ight=timer

Мне необходимо, чтобы прогамма обновляла данные каждые 60 минут (или больше) через Интернет.
Timer не очень хороший помощник в этом. Поэтому многие советуют использовать Sleep, но как конкретно его можно использовать я не понял. Подскажите, пожалуйста.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.11.2004 (Ср) 22:29

А я бы сделал так: таймер на минуту, проверяет - настало время очередного обновления или нет. Если настало - обновляет, если нет - просто ничего не делает :-)
Изображение

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 24.11.2004 (Ср) 22:34

Тебе Gaidar тогда на все замечательно ответил, но ты его почему-то проигнорировал, как и все остальные :lol:.

Если не ясно, поясню..

Допустим, есть интервал - 1 час (пользователь задал)
При первом запуске программы сохраняешь в переменную текущее время, в коде таймера (с интервалом, положим, 1000 - 1 сек) пишешь проверку:
если ВремяИзПеременной + 1 час <= ТекущееВремя тогда выполняем обновление: обновляешь значение переменной ВремяИзПеременной на текущее время.

Ясно :?:

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 24.11.2004 (Ср) 23:03

Пока писал мессагу, tyomitch, опередил.. Ну так всегда :twisted:

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

eVe
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 15
Зарегистрирован: 02.09.2004 (Чт) 10:49

Сообщение eVe » 24.11.2004 (Ср) 23:37

xolod писал(а):Пока писал мессагу, tyomitch, опередил.. Ну так всегда :twisted:
Это-то понятно :) -- в хелпе этот пример как раз и разбирается, вопрос в том насколько этот способ является "красивым"? Я исхожу из соображений загруза системы. В той теме также предлагают для этих целей использовать GetTickCount(), который можно подставить вместо ТекущегоВремени.

Воспользовался идеей tyomitch - работает как часы :). Создал счетчик, который увеличивает значение на 1 каждую минуту. Как только оно будет равно 60 (или другому значению), срабатывает другая процедура обновления.

eVe
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 15
Зарегистрирован: 02.09.2004 (Чт) 10:49

Сообщение eVe » 24.11.2004 (Ср) 23:39

П.С.
xolod, я имел в виду предыдущее твое сообщение :)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.11.2004 (Ср) 23:52

eVe писал(а):вопрос в том насколько этот способ является "красивым"? Я исхожу из соображений загруза системы.

Имхо достаточно красиво. Кто заметит потерю миллисекунды раз в минуту?
Можно сделать с ещё меньшими потерями времени через SetTimer, но имхо и так достаточно экономично.
Изображение

eVe
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 15
Зарегистрирован: 02.09.2004 (Чт) 10:49

Сообщение eVe » 25.11.2004 (Чт) 0:26

xolod и tyomitch, спасибо большое за советы. С таймером я разобрался. А для каких целей тогда предлагают использовать Sleep? Чем этот способ лучше?

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 25.11.2004 (Чт) 1:09

Ну я так подозреваю, что Sleep предлагалось использовать следующим образом..

Выполнил обновление -> Вызвал Sleep(Интервал) -> Выполнил Действие
Вообщем в цикле: Обновление->Sleep

ps: Но этот способ уж точно не красив, по определению..

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

eVe
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 15
Зарегистрирован: 02.09.2004 (Чт) 10:49

Сообщение eVe » 25.11.2004 (Чт) 2:07

xolod, спасибо, вопросов больше нет! :)


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: Google-бот и гости: 23

    TopList