定时器实现未按预期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"));
                    }
                } 
        }

定时器实现未按预期c#每5秒运行一次

我会给你一个提示。如果你了解每个人的去向,那么它应该是清楚的。如果没有,一旦你好转,你会的。

// 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();

当用户在你工作时点击按钮时,会有更多的问题,但这超出了这个问题的范围。