как ярлык будет обновляться время от времени - PullRequest
0 голосов
/ 17 сентября 2018

Я улавливаю время запуска и текущее время, но моя проблема в том, что метка не меняется, если время запуска уже прошло. Мне нужно снова открыть форму Windows (c #), чтобы метка изменилась.

Код:

_hh = DateTime.Now.Hour;
_min = DateTime.Now.Minute;
_yy = DateTime.Now.Year;
_mm = DateTime.Now.Month;            
_dd = DateTime.Now.Day;

DateTime _original_launch_time = new DateTime(_yy, _mm, _dd, 13, 0, 0);//this is the default time for launch
DateTime time = new DateTime(_yy, _mm, _dd, _hh, _min, 0); //this gets the current time

if (_original_launch_time > time)
{
    label1.Text = "your not late";
}
else
{
    label1.Text = "your late";
}

1 Ответ

0 голосов
/ 17 сентября 2018

Создайте таймер для выполнения вашего кода в течение некоторого интервала времени и вызовите ваш код для выполнения в главном потоке, чтобы правильно обновить форму, так как таймер работает в фоновом потоке.

using System.Windows.Forms;

Timer t = new Timer();
t.Interval = 1000;
t.Tick += new EventHandler(timer_Tick);
t.Start();

void timer_Tick(object sender, EventArgs e)
{
      Invoke((MethodInvoker)(() => {

          // your code here

      }));
}

Не забудьте позвонить t.Stop(); при закрытии формы, как будто вы этого не сделали, она будет работать до тех пор, пока вы не закроете все приложение.

...