加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

如何在Windows窗体C#中保存大量数据

发布时间:2020-12-14 04:37:22 所属栏目:Windows 来源:网络整理
导读:我目前正在将大约一百万行存储到DataTable中, 这需要大约600 Mb的RAM. 因此,当您运行应用程序时,它会在DataTable中存储1 000 000行并在GridView上显示该行.关闭应用程序时,这显然会清除内存. 我想向用户提供此选项,换句话说,当用户尝试关闭表单时,将询问他是
我目前正在将大约一百万行存储到DataTable中,
这需要大约600 Mb的RAM.

因此,当您运行应用程序时,它会在DataTable中存储1 000 000行并在GridView上显示该行.关闭应用程序时,这显然会清除内存.

我想向用户提供此选项,换句话说,当用户尝试关闭表单时,将询问他是否要清除内存.

这样做的原因是,每次运行应用程序时都不必等待数据被读入Datatable.

….我对C#相当新,所以如果这是一个适当的问题,我道歉.

解决方法

如果存储器中存在正在运行的应用程序/进程,则只能在内存中保留一些内容 – 如果应用程序关闭(并且只有一个应用程序实例在内存中打开),则内存将被释放.如果你想将它保存在内存中,那么你唯一的选择就是

>不要关闭您的申请,例如只是隐藏窗口(通常是一个非常糟糕的想法,你的用户不会感谢你)
>将数据保存在另一个单独的进程中,即使您的应用程序不是这样,也可以继续运行,例如Windows服务(再次可能不是您的用户会感谢您的内容,除非您实际上正在尝试开发一种服务形式)而不是Windows应用程序).

更好的想法是改变应用程序使用大型数据集的方式,这样就不需要将它全部保存在内存中,例如,如果在大型列表视图中显示所有数据,则使用虚拟列表视图这样只有当前显示给用户的那些行才会被加载到内存中.然后,您可以将数据存储在外部数据库或半永久性文件(例如SQLite数据库)中.

或者只是像你现在一样加载数据集.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读