[英]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.