В общем возможно ли осуществить выполнение кода в определенное время с точностью до секунды с минимальной нагрузкой на проц? Возможно ли при этом обойтись без таймера?(скорее невозможно)
Так как роли мне сильно пока не играет, сделал с погрешностью в 1 час. Выставил интервал таймера 1 час, чтобы он проверял сколько именно часов в данный момент
Код:
private void timer1_Tick(object sender, EventArgs e)
{
int hour = DateTime.Now.Hour;
switch (hour)
{
case 10: код; break;
case 16: код; break;
case 22: код; break;
}
}
Вопрос не особой важности, но если вдруг кто ответит, буду очень благодарен!
запустить поток, который вызывает
Application.Exit();
перед этим поставить Thread.Sleep(время в мс). точность до 100ms можно гарантировать....
Не пробовал, но должно сработать...
Sinyss, Application.Exit(); ведь закрывает программу! Может быть я не так объяснил.. программа стоит на сервере, работает 24 часа в сутки 7 дней в неделю, ежедневно запускает поток, в котором выполняется определенный код, но запуск происходит не в точно указанное время, с моим кодом например с 14:00 до 15:00, когда сработает таймер, а мне например надо в 14:03 или 14:58, ну как то так.
Получаем текущее время [Ссылки могут видеть только зарегистрированные пользователи. ]
от времени когда надо запустить программу отнимаем полученное. Переводим в миллисекунды. Делаем Thread.Sleep(полученное число) (или лучше запустить таймер [Ссылки могут видеть только зарегистрированные пользователи. ])
Так же не забываем проверки на отрицательные числа.
PS: извиняюсь за 1й код, почему то был уверен что Вам нужно выключать программу...
Sinyss, Вот это уже интереснее, можно обойтись таймером с интервалом в 24 часа. Спасибо.
Просто таймер не так оптимально, поскольку если сервер упадет, надо будет настраивать заново...
1й запуск можно сделать с моим алгоритмом, а все последующие уже с таймером на 24 часа.
Sinyss, Application.Exit(); ведь закрывает программу! Может быть я не так объяснил.. программа стоит на сервере, работает 24 часа в сутки 7 дней в неделю, ежедневно запускает поток, в котором выполняется определенный код, но запуск происходит не в точно указанное время, с моим кодом например с 14:00 до 15:00, когда сработает таймер, а мне например надо в 14:03 или 14:58, ну как то так.
ставь точное время, пару флагов и таймер не на час, а на 1-2 минуты
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Я бы делал при запуске кода, проверку сколько осталось до заданного времени минут, после переводил в миллисек. и делал сон на это время, после того как проснулись сразу выполняем код
________________ Полные взломы игрулек VK:
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). (?fix) | [HOT-NEW] Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Я бы делал при запуске кода, проверку сколько осталось до заданного времени минут, после переводил в миллисек. и делал сон на это время, после того как проснулись сразу выполняем код
как вариант вполне, только не сон, а просто бездействие)))
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Nickitee, Mebius, *****кодеры, кыш отсюда. Оптимальный вариант был уже предложен 2жды, ваших корявых методов тут не надо.
Ты кто такой? С####### отсюда.
В отличии от вас,Sinyss, я давно использую крон демона, который всё делает по заданому времени, погрешность 100 миллисекунд. При этом ему не нужна платформа .net для запуска.
Так что, сиди и не бушуй.
________________
We are Ducks. We are birds. We like bread. We cryack. Cryack.
Последний раз редактировалось Nickitee; 22.04.2012 в 12:51.
Ты кто такой? С####### отсюда.
В отличии от вас,Sinyss, я давно использую крон демона, который всё делает по заданому времени, погрешность 100 миллисекунд. При этом ему не нужна платформа .net для запуска.
Так что, сиди и не бушуй.
Вау, за 15 дней ты таки нашел что ответить. А теперь пройдемся по крону.
1) Автор спросил в разделе C# значит ему нужно под винду. Конечно в инете есть версии под винду, но хз кто их написал, хз как они работают. Я такому софту не доверяю.
2) Автор спросил КОД, а не готовый продукт.
3) cron не подходит если результаты выполнения должны выводится в твоей программе.
4) cron под win скорее всего зависнет где то в службах и выковыривать его оттуда будет напряжно(я настолько ленивый что мне будет лень). Кроме того он опять же будет есть системное время, причем даже тогда когда в этом нет необходимости.
5) Ты советуешь качать левую программу вместо того что бы написать 3 строчки, *****кодер lvl over 9000
PS: иди к тому ПХПшнику, который советовал реализовывать цикл через таймер.
Вау, за 15 дней ты таки нашел что ответить. А теперь пройдемся по крону.
1) Автор спросил в разделе C# значит ему нужно под винду. Конечно в инете есть версии под винду, но хз кто их написал, хз как они работают. Я такому софту не доверяю.
2) Автор спросил КОД, а не готовый продукт.
3) cron не подходит если результаты выполнения должны выводится в твоей программе.
4) cron под win скорее всего зависнет где то в службах и выковыривать его оттуда будет напряжно(я настолько ленивый что мне будет лень). Кроме того он опять же будет есть системное время, причем даже тогда когда в этом нет необходимости.
5) Ты советуешь качать левую программу вместо того что бы написать 3 строчки, *****кодер lvl over 9000
PS: иди к тому ПХПшнику, который советовал реализовывать цикл через таймер.
Я захожу на форум когда захочу.
3) через php можно записать в файл.
4) cron вообще работает не на windows OC.
5) Крон это не левая программа.
О каком ПХП-ешнике вы говорите?
Перед тем как отвечать, советую погуглить
Добавлено через 2 минуты
Цитата:
Сообщение от Yukikaze
Nickitee, опять появился, из тебя такой же програмист как и из тех кто тут "гайды" пишет.
И кто мне это говорит?
Человек который пишет "програмист".
И не тебе меня судить. Если хочешь, давай сравним достижения в C#?
________________
We are Ducks. We are birds. We like bread. We cryack. Cryack.
Последний раз редактировалось Nickitee; 22.04.2012 в 20:52.
Причина: Добавлено сообщение