0

多くのページを含むプロジェクトがあります。アプリケーションの状況に関係なく、データベースに定期的に情報をインポートしたいと考えています。

コードを App.xaml.cs 内に配置しようとしましたが、データは一度しか保存されません (起動中に配置し、コンストラクターで試しました。私の方法は、デバイス 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);
} 

私のウォッチャーの位置が変更されたのはコンストラクター内です。

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

MovementThreshold = getSelectedDeviceLocationFrequencyFromInternalFolder();

watcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(watcher_PositionChanged);
watcher.Start();

App.xaml.cs 内でグローバルに定義されます。

プログラムの実行中に定期的にこれを実行するにはどうすればよいですか? その他の方法で ?ありがとうございます (要約すると、位置データを定期的にデータベースに挿入したいと思います。)

4

1 に答える 1

0

アプリの起動時にスレッドを起動する必要があります。スレッドは、必要な時間だけスリープし (または、アプリからの信号で起動し、新しい値を受信したときに)、その中のデータ ストアにデータを書き込みます。

于 2012-05-10T15:28:36.460 に答える