Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2011, 09:12   #1
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию задача в определенное время

Доброго времени суток всем. задача такова, пользователь задает время копирования (к примеру 05:00), далее программа должна каждый день в 5 утра выполнять копирование. как это лучше реализовать ? пока в голову приходит только кинуть на форму таймер и каждую секунда проверь "5 утра?" если да то начать копирование. хотелось бы узнать мб есть какой то более лучший вариант ?
wm_leviathan вне форума Ответить с цитированием
Старый 02.12.2011, 14:58   #2
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

wm_leviathan, программа на круглосуточном сервере будет установлена? Если да, то заботится о питании не нужно, если нет, то придется переводить компьютер в спящий режим (это просто рекомендация, можете и не переводить). А таймер вам и не нужен. Самой рациональной на мой взгляд идеей будет:
создать поток и в потоке проверять значения системного времени.
p.s. и кстати, в стандартном планировщике заданий таких функций нет? обязательно программу писать надо? и что должно копироваться в таком случае, если не секрет?
"Тебе то может на меня и насрать, но твои глаза меня обожают!"

Последний раз редактировалось ImmortalAlexSan; 02.12.2011 в 15:01.
ImmortalAlexSan вне форума Ответить с цитированием
Старый 02.12.2011, 16:09   #3
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

нет не секрет архивы баз сервака. я знаю, для этого решения есть множество утилит и др. средства, но начальник сказал мне написать утилитку (надеюсь с этим понятно и стороннюю ерунду не предлагать). теперь дальше.
Цитата:
программа на круглосуточном сервере будет установлена?
да на круглосуточном. идем далее.
Цитата:
А таймер вам и не нужен. Самой рациональной на мой взгляд идеей будет:
создать поток и в потоке проверять значения системного времени.
как вы предлагаете реализовать отдельный поток? сам механизм работы? (поток то создать мне не проблема, а дальше как бесконечный цикл и в нем проверку текущего времени с заданным ) кстати таймер создает отдельный поток.
Цитата:
p.s. и кстати, в стандартном планировщике заданий таких функций нет?
нет нету, пользователь будет настройки вводить + ведется база где отображается какой архив скопирован, его размер, дата время копирования, успешно\не успешно скопирован и само собой верификация архива.
Цитата:
обязательно программу писать надо?
да обязательно с шефом не поспоришь, думаю многие это знают
З.Ы. вопрос остается открытым "имеется ли лучший способ чем в таймере проверять текущее время с заданным ?"
wm_leviathan вне форума Ответить с цитированием
Старый 02.12.2011, 22:02   #4
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

wm_leviathan, если честно - ни разу не пользовался таймером c#. Но что-то мне подсказывает, что он ест много ресурсов (я может и не прав). Предлагаю более точный вариант своего варианта:
Код:
[DllImport("kernel32.dll", SetLastError = true)]
public static extern bool GetSystemTime(ref SYSTEMTIME time);
//**********
SYSTEMTIME time = new SYSTEMTIME();
GetSystemTime(ref time);
//Бесконечный цикл
{
    if ((time.wHour == ???) && (time.wMinute == ???)) 
    {
        //ваше решение
    )
} //конец цикла
Точнее не подскажу больше ничего, потому что не знаю другого метода, кроме как сравнивать.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"

Последний раз редактировалось ImmortalAlexSan; 02.12.2011 в 22:10.
ImmortalAlexSan вне форума Ответить с цитированием
Старый 02.12.2011, 23:33   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

таймер жрет уж точно меньше чем активное ожидание
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.12.2011, 10:06   #6
Руслантус
Наркоман самоучка
Форумчанин
 
Аватар для Руслантус
 
Регистрация: 22.07.2007
Сообщений: 276
По умолчанию

Можно использовать Планировщик заданий.
#include <мозг.h>
Руслантус вне форума Ответить с цитированием
Старый 05.12.2011, 12:56   #7
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

планировщик не катит читай посты выше. ImmortalAlexSan спасибо конечно, но в теории: сколько бесполезных итераций пройдет цикл за секунду на 4х процессорном серваке с 10гб оперативы и функционально ничего вообще не делающий? поэтому лично я считаю что проверять 1раз в секунду через компонент таймер, выгоднее чем проверять 100-1000 раз в секунду через цикл, конечно Thread.Sleep(1000) никто не отменял но по сути зачем тогда этот код если все это реализовано в таймере бери да юзай? (изобретение велосипеда). все равно спасибо за ответы. я надеялся мб есть какое либо более гибкое решение чем проверка в таймерах и циклах. на счет планировщиков и подобного если вы мне покажите планировщик который, к примеру запустит ексель документ исправит в нем данные и сохранит его в другую папку, то я с радостью уничтожу половину классов в своей проге.
wm_leviathan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск программы в определенное время Graf_ka Помощь студентам 5 17.11.2011 14:25
Задержка на определенное время. asmars Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 23 31.07.2011 20:46
Сообщение в определенное время. D.O.G Общие вопросы Delphi 23 11.10.2010 22:33
Запуск макроса в определенное время Юнлинг Microsoft Office Excel 2 15.10.2009 15:59
Определенное время Lonix Общие вопросы Delphi 11 18.03.2007 09:37