1

GeoCoordinateWatcher.PositionChaged 事件如何在周期性任务中工作?如果我有一个每隔一小时运行一次的后台代理。代码是

 protected override void OnInvoke(ScheduledTask task)
 {
   GeoCoordinateWatcher watcher = new    
   GeoCoordinateWatcher(GeoPositionAccuracy.Default);
   watcher.MovementThreshold = 100;
   watcher.PositionChanged += _watcher_PositionChanged;
   watcher.Start();
  }

如果最初设备位于位置 A 并且设备在接下来的一小时内移动了超过 100m,那么在调用 onInvoke() 的 1 小时后 _watcher_PositionChanged 会被触发吗?

4

1 回答 1

3

不,下一次OnInvoke被调用时,你实例化一个新的GeoCoordinateWatcher,它只会PositionChanged从那一刻起引发事件。它不知道它早在哪里,它刚刚出生。

您需要保存您的坐标并在每次 OnInvoke 调用中引用它,并在需要时手动调用您的 PositionChanged 代码。

于 2012-06-03T15:41:22.547 回答