Windows phone 7 应用程序运行期间的wp7后台进程

Windows phone 7 应用程序运行期间的wp7后台进程,windows-phone-7,backgroundworker,app.xaml,Windows Phone 7,Backgroundworker,App.xaml,我有一个项目,其中包括许多页。无论应用程序的情况如何,我都希望定期将信息导入数据库 我试图将代码放入App.xaml.cs中,但它只保存了一次数据(我将代码放入launching中,并在构造函数中进行了尝试。我的方法是获取设备id的位置,如下所示 void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e) { Location loc = new GeoCo

我有一个项目,其中包括许多页。无论应用程序的情况如何,我都希望定期将信息导入数据库

我试图将代码放入App.xaml.cs中,但它只保存了一次数据(我将代码放入launching中,并在构造函数中进行了尝试。我的方法是获取设备id的位置,如下所示

void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
{
    Location loc = new GeoCoordinate(e.Position.Location.Latitude, e.Position.Location.Longitude);

    //Send Data to Database
    dclient.CreateUserLocationCompleted += new EventHandler<System.ComponentModel.AsyncCompletedEventArgs>(dclient_CreateUserLocationCompleted);
    dclient.CreateUserLocationAsync(1, loc.Latitude, loc.Longitude);
} 
void watcher\u位置已更改(对象发送器,地理位置更改Deventargs e)
{
位置loc=新地理坐标(e.Position.Location.Latitude,e.Position.Location.经度);
//将数据发送到数据库
dclient.CreateUserLocationCompleted+=新事件处理程序(dclient\u CreateUserLocationCompleted);
dclient.CreateUserLocationAsync(1,位置纬度,位置经度);
} 
我的观察者位置在构造器内部改变了

if (watcher == null)
{
    watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High)
}

MovementThreshold = getSelectedDeviceLocationFrequencyFromInternalFolder();

watcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(watcher_PositionChanged);
watcher.Start();
if(观察者==null)
{
watcher=新的地理坐标记录器(地理位置精度高)
}
MovementThreshold=getSelectedDeviceLocationFrequencyFromInternalFolder();
watcher.PositionChanged+=新事件处理程序(watcher\u PositionChanged);
watcher.Start();
并在App.xaml.cs中全局定义


程序运行时,我如何能一直定期运行此线程?有其他方法吗?谢谢(总而言之,我想定期将位置数据插入数据库。)

当应用程序启动时,您需要启动一个线程,该线程可以在任何时间休眠(或者在收到新值时,在收到应用程序的信号时醒来)并将数据写入其中的数据存储