複数のデバイスからデータを収集し、そのデータをローカルの SQLite データベースに保存する Windows フォーム アプリケーションがあります。次に、一定期間、新しいレコードを外部 Web サービスにアップロードする必要があります。つまり、「WasUploaded = 0」フィールドで新しいレコードを読み取り、アップロードしてから、成功時に「WasUploaded = 1」を設定する必要があります。今日、私はこれを 10 年前と同じ方法で行います。新しいバックグラウンド スレッドをフォークし、エンドレス サイクルを実行します。
while(true)
{
try
{
var newRecords = dbRepo.ReadNew(10); // read 10 records at a time
UploadToExternalWebservice(newRecords);
foreach (var r in newRecords)
{
r.WasUploaded = 1;
}
dbRepo.CommitChanges(newRecords);
}
catch (Exception ex)
{
Logger.LogError(ex);
}
Thread.Current.Sleep(15*1000);
}
しかし、私は疑問に思い始めました-これを行うためのより良い方法はありますか? ここで Tasks ライブラリを使用する価値はありますか?..何か他のものはありますか?
それが重要な場合、私は.Net 4.0を使用しています。
ありがとうございました。