簡體   English   中英

C# 如何在 10 分鍾后停止計時器

[英]C# How to stop a Timer after 10 min

我嘗試在文本文件中每 10 秒寫入一些值,持續 10 分鍾。 我的代碼看起來像這樣。

    private void button12_Click(object sender, RoutedEventArgs e)
    {
        DispatcherTimer tPOI = new DispatcherTimer();
        tPOI.Tick += new System.EventHandler(dispatcherTimer_TickPOI);
        tPOI.Interval = new TimeSpan(0, 0, 10);
        tPOI.Start();
        MessageBox.Show("recording POI");
    }

    private void dispatcherTimer_TickPOI(object sender, EventArgs e)
    {
        using (StreamWriter file = new StreamWriter(@textBox36.Text, true))
        {
            file.WriteLine("pos POI");
            file.WriteLine(textBox40.Text);
            file.WriteLine(textBox41.Text);
            file.WriteLine(textBox42.Text);
            file.WriteLine(textBox46.Text);
        }
    }

但現在我不知道如何在 10 分鍾后停止我的計時器。 有人給我提示嗎?

你可以做這樣的事情。 跟蹤StartTime並檢查它是否超過 10 分鍾。

private DateTime _startTime; //track the start time
private DispatcherTimer tPOI;

private void button12_Click(object sender, RoutedEventArgs e) 
{
    tPOI = new DispatcherTimer();
    tPOI.Tick += new System.EventHandler(dispatcherTimer_TickPOI);
    tPOI.Interval = new TimeSpan(0, 0, 10);

    _startTime = DateTime.Now; //assign start time when it actually starts

    tPOI.Start();
    MessageBox.Show("recording POI");
}

private void dispatcherTimer_TickPOI(object sender, EventArgs e) 
{
     if (_startTime.AddMinutes(10) < DateTime.Now) //check if it has crossed 10 mins
     { 
        tPOI.Stop();
     } 
     else 
     {
         using(StreamWriter file = new StreamWriter(@textBox36.Text, true)) 
         {
             file.WriteLine("pos POI");
             file.WriteLine(textBox40.Text);
             file.WriteLine(textBox41.Text);
             file.WriteLine(textBox42.Text);
             file.WriteLine(textBox46.Text);
         }
     }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM