定时器不工作

本文关键字:工作 定时器 | 更新日期: 2023-09-27 18:14:50

我想每10秒运行一次GetCurrentLocation()方法,但是在加载页面时只捕获一次位置。我怎样才能改正呢?以下是WP代码:

 private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
    {
        Callback(true);
    }
 private static Timer timer;
    private  void Main()
    {
        timer = new Timer(Callback, null, 10000, Timeout.Infinite); 
    }
    private void Callback(Object state)
    {
        GetCurrentLocation();
    }

定时器不工作

Main方法永远不会被调用。

你只在加载页面时直接调用Callback,所以计时器永远不会启动。

在加载的处理程序中调用Main。

还将TimeOut.Infinite更改为实际数字。此参数设置计时器的刻度之间的时间,而不是它将运行多长时间!

还:将定时器private改为private static;在我看来,没有什么好理由把它变成静态的:

private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
    StartTimer();
}
private Timer timer;
private void StartTimer()
{
    // start now and repeat every 10 seconds
    timer = new Timer(TimerCallback, null, 0, 10000); 
}
private void TimerCallback(Object state)
{
    GetCurrentLocation();
}