微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我目前正在将大约一百万行存储到DataTable中,
这需要大约600 Mb的RAM.

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

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

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

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

解决方法

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐