C# GeoCoordinateWatcher.PositionChaged事件在定期任务中如何工作?

C# GeoCoordinateWatcher.PositionChaged事件在定期任务中如何工作?,c#,windows-phone-7.1,C#,Windows Phone 7.1,GeoCoordinateWatcher.PositionChaged事件在定期任务中如何工作?如果我有一个每一小时运行一次的后台代理。代码是 protected override void OnInvoke(ScheduledTask task) { GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.Default); watcher.MovementThresh

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

 protected override void OnInvoke(ScheduledTask task)
 {
   GeoCoordinateWatcher watcher = new    
   GeoCoordinateWatcher(GeoPositionAccuracy.Default);
   watcher.MovementThreshold = 100;
   watcher.PositionChanged += _watcher_PositionChanged;
   watcher.Start();
  }
如果最初设备位于A位置,并且设备在接下来的一小时内行驶了100米以上,那么在调用onInvoke()的1小时后,“观察者”位置是否会发生变化?否。 下次调用
OnInvoke
时,您将实例化一个新的
geocordinatewatcher
,从那时起,它只会引发
PositionChanged
事件。它不知道它之前在哪里,它刚刚出生

您需要保存坐标,并在每次OnInvoke呼叫时参考坐标,必要时手动呼叫您的位置更改代码