关闭表格后,保持计时器代码工作



我目前正在制作一个有期日期的程序,即使关闭程序,我也希望我的计时器工作,这是我的代码:

    private int counter = 30;
    private void Form2_Load(object sender, EventArgs e)
    {
        timer1.Interval = 1000; // 1 day
        timer1.Tick += timer1_Tick;
        timer1.Start();
    }
    private void timer1_Tick_1(object sender, EventArgs e)
    {
            counter--;
            if (counter == 0)
                timer1.Stop();
            label3.Text = counter.ToString();
    }
   private void Form2_FormClosing(object sender, FormClosingEventArgs e)
    {
    }

如果可能的话,我很高兴知道该怎么做

如果计时器应继续计数,即使您的程序被关闭,也无法使用计时器。改用DateTime类。

将datetime.now的值保存到磁盘(例如,使用应用程序设置),然后,为了检查有效期,再次加载该值并将其与当前时间进行比较:

假设startOfPeriod是您到期期的开始:

if( startOfPeriod.AddDays( 30 ) < DateTime.Now )
{
// Time has expired
}

注意:请注意,在这种方法中,您的软件可以在一天中期到期。如果您不希望发生这种情况,请替换上述if表达式:

if( startOfPeriod.Date.AddDays( 30 ) < DateTime.Now.Date )

最新更新