我正在开发一个应用程序,它加载一些 url,解析它们,将它们保存到 sqlite db 中,UI 将读取保存的数据并在控件中显示它们。这一进展应该在几乎无限循环中完成。为了获得快速响应,我计划在主线程中从数据库中读取数据,并让另一个线程(后台工作人员)加载数据并将其插入数据库。在调度程序定时器中运行读写过程是否合乎逻辑并且可能,一个定时器在主线程中,另一个在后台工作者中?如何?或者有人有更好的主意吗?
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
}
}