URLをロードして解析し、それらをsqlite dbに保持するアプリを開発しています。UIは保存されたデータを読み取り、コントロールに表示します。この進行は、ほぼ無限ループで行われる必要があります。高速応答を実現するために、メイン スレッドで db からデータを読み取り、データをロードして db に挿入する別のスレッド (バックグラウンド ワーカー) を用意する予定です。ディスパッチャータイマーで読み取りおよび書き込みプロセスを実行し、1 つのタイマーをメイン スレッドで、もう 1 つのタイマーをバックグラウンド ワーカー内で実行することは論理的で可能ですか? そしてどうやって?または、誰かがより良いアイデアを持っていますか?
main thread:
DispatcherTimer _Timer1 = new DispatcherTimer();
_Timer1.Interval = _Interval;
_Timer1.Tick += _Timer1_Tick;
void _Timer1_Tick(object sender, EventArgs e)
{
// read data from db and show in controls
}
secondary thread:
private void bw_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
DispatcherTimer _Timer2 = new DispatcherTimer();
_Timer2.Interval = _Interval;
_Timer2.Tick += _Timer2_Tick;
}
void _Timer2_Tick(object sender, EventArgs e)
{
// write data into db
}
}