Метод запуска Windows C # в определенное время

1

Я делаю приложение в Windows Forms (С#), и я хочу установить в макете область, в которой пользователь определяет данный час.

Затем, когда пользователь нажимает кнопку "Старт", каждый заданный час выполняется.

Каков самый простой способ сделать это?

С уважением

Теги:
windows-forms-designer

2 ответа

1
Лучший ответ

Простой таймер WinForms может выполнить задание:

DateTime runTime;

public Form1() {
  InitializeComponent();
  DateTime nowTime = DateTime.Now;
  runTime = new DateTime(nowTime.Year, nowTime.Month, nowTime.Day, 12, 0, 0);
  timer1.Interval = 500;
}

void timer1_Tick(object sender, EventArgs e) {
  if (DateTime.Now > runTime) {
    timer1.Stop();
    MessageBox.Show("It time!");
  }
}

void button1_Click(object sender, EventArgs e) {
  timer1.Start();
}

Просто обновите значение runTime с помощью часа и/или минуты. Тревога, очевидно, не будет срабатывать, если программа не запущена. Как отметил Ханс, для этого потребуется услуга.

0

Не проверено, но что-то вроде этого?

var timer = new System.Timers.Timer((DateTime.Now - (DateTime.Now - TimeSpan.FromHours(DateTime.Now.Hour + 1))).Milliseconds);
timer.Elapsed += (sender, evt) =>
{
    timer.Interval = (DateTime.Now - (DateTime.Now - TimeSpan.FromHours(DateTime.Now.Hour + 1))).Milliseconds;
    // Do things
};
timer.Start();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню