定时器实现未按预期c#每5秒运行一次
本文关键字:运行 一次 5秒 实现 定时器 | 更新日期: 2023-09-27 18:25:33
我有以下定时器实现。但计时器并不是按需要每5秒运行一次。如何做到每5秒跑一次。目前它大约每30秒运行一次。
private void button1_Click(object sender, RoutedEventArgs e)
{
msgsent = 0;
timer.Tick += timer_Tick;
timer.Interval = new TimeSpan(0, 0, 5);
bool isenable = timer.IsEnabled;
timer.Start();
}
private async void timer_Tick(object sender, object e)
{
if (geo == null)
{
geo = new Geolocator();
}
Geoposition posi = await geo.GetGeopositionAsync();
if (posi.Coordinate.Point.Position.Latitude <= 12.9227 && posi.Coordinate.Point.Position.Longitude >= 080.1320)
{
if (msgsent <=1)
{
msgsent = msgsent + 1;
ShowDialog(new MessageDialog("Your Bus has crossed xyz"));
}
}
}
我会给你一个提示。如果你了解每个人的去向,那么它应该是清楚的。如果没有,一旦你好转,你会的。
// in the class definition
int msgsent;
Timer timer;
和
// in the constructor
timer = new Timer();
timer.Tick += timer_Tick;
timer.Interval = new TimeSpan(0, 0, 5);
和
// in the Button.Click event handler
timer.Start();
和
// in the Timer.Tick event handler
timer.Stop();
/* do your work here */
timer.Start();
当用户在你工作时点击按钮时,会有更多的问题,但这超出了这个问题的范围。