在为人调度事件的WPF应用程序中使用SQLite。应用程序将由2-4个用户同时使用.我想知道如何确保每个用户都拥有最新的数据库信息。
我想出的是:
一旦我做到了这一点,我就可以使用LastModifiedDataAndTime列这样的东西来跟踪数据库何时被修改了,所以我不会查询相同的数据。每隔30分钟、1分钟、5分钟等时间创建(重新创建)一个新的集合似乎效率极低。我是否使用单独的线程选择日程数据的正确方式?
发布于 2018-01-22 15:53:04
这在很大程度上取决于UI以及它将数据呈现给用户的方式。如果用户界面只显示当用户打开新窗口或更改视图时更新的数据的一些小部分,则只在更新操作的上下文中检查db更改就足够了,以检测试图同时更改同一记录的两个用户可能发生的冲突。
但是,如果数据像某种“新闻贴纸”一样显示在UI中,需要在后台的屏幕上不时更新,那么有一些单独的线程以定期的时间间隔查询数据库是一种明智的解决方案。
在数据库中存储一些时间戳,可以快速检查db中是否可能有某些更改(或根本没有更改),这是一种标准优化,但只有在修改频率通常低于更新检查计划的时间间隔时才能进行。
https://softwareengineering.stackexchange.com/questions/364440
复制相似问题