gpt4 book ai didi

c# - 如何在 Windows 窗体 C# 中将大量数据保存在内存中

转载 作者:太空狗 更新时间:2023-10-30 00:54:25 28 4
gpt4 key购买 nike

我目前正在将大约一百万行数据存储到数据表中,这需要大约 600 Mb RAM。

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

我会喜欢给用户这个选项,换句话说,当用户试图关闭表单时,他将被询问是否要清除内存。

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

....我是 C# 的新手,所以如果这是一个合适的问题,我深表歉意。

最佳答案

如果内存中有正在运行的应用程序/进程,并且该数据在内存中,则您只能在内存中保留某些内容 - 如果您的应用程序关闭(并且只有 1 个应用程序实例打开,内存中有该数据),那么内存将是释放。如果您想将其保存在内存中,那么您唯一的选择就是

  • 不要关闭您的应用程序,例如只是隐藏窗口(通常是一个非常糟糕的主意,您的用户不会感谢您)
  • 将数据保存在另一个单独的进程中,即使您的应用程序不在运行,该进程也会保持运行,例如 Windows 服务(同样,您的用户可能不会感谢您,除非您实际上是在尝试开发一个表单服务而不是 Windows 应用程序)。

一个更好的主意是改变您的应用程序处理大型数据集的方式,这样它就不需要将所有数据都保存在内存中,例如,如果您在大型 ListView 中显示所有数据,然后使用虚拟 ListView ,以便只有那些当前显示给用户的行被加载到内存中。然后,您可以将数据存储在外部数据库或半永久文件(例如 SQLite 数据库)中。

或者像现在一样每次都加载数据集。

关于c# - 如何在 Windows 窗体 C# 中将大量数据保存在内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12893715/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com