我在我的应用程序中有一个列表视图,显示传输事件,这个列表视图应该每秒更新一次,以跟进事件。 我只是通过一个定时器(1000间隔)来声明一个连接对象,dataReader ...然后填充listview,最后,我处理连接和另一个对象(这是每一个计时器滴答)。
现在,有没有更好的方法呢?对于表演,记忆或其他事情可能更好吗?
我不是专家,所以我想也许这可能是每一秒都宣称很多情绪可能会造成一些记忆问题:)(如果错误的话,请纠正我)
DataBase Access 2007 VS 2012
谢谢。
答案 0 :(得分:1)
假设您使用ADO.NET访问数据库,您的访问模型应该没问题,因为.NET使用connection pooling来最小化关闭和重新打开数据库连接对性能的影响。
但是,您的整体架构可能会受到质疑:轮询定时器更新通常不是最佳选择。更好的方法是在单独的表中维护更新序列。该表将有一行,最初将一个int
列设置为零。每次更新“真实”数据时,此数字都会增加一个。有了这个表,你的程序每秒只能读取这个数字,而不是重新读取整个数据集。如果您的程序检测到该数字与上一次相同,则它会停止并等待下一个计时器间隔;否则,它会重新读取数据集。