我正在构建一个窗口WPF应用程序 窗口中是一个列表项目(当然是保存在数据库中) 定期我需要启动一个后台任务从Atom提要更新数据库。随着每个新项目被添加到数据库中,UI中的列表也必须更新以反映这一点。我不希望这个后台任务放慢UI,但同时它需要与UI进行交互。针对WPF应用程序的多线程策略所需的建议
阅读过大量的文章,并看到很多简单的例子,我仍然不确定实现这一点的最佳方式。
我觉得也许我可以做的是:
在Window_Loaded事件,创造一个DispatchTimer。 当Tick事件触发时,调用UpdateDb()方法。 UpdateDB()将从Atom提要中获取项目并添加到数据库。当我迭代每个项目时,我会调用另一种方法将列表重新绑定到数据库,以便“刷新”。 当所有的任务完成后重置DispatchTimer ??? (不知道这是否可以/需要/完成)。
请记住,这是后台任务,因此用户可以同时使用UI。
听起来如何?
谢谢。
我喜欢这种声音。我不需要数据服务,因为我已经有一个管理类来处理数据库工作。 UI中没有数据库工作正在发生。我只是想简单地解释我的问题的背景信息。 – empo 2009-08-28 08:47:23