gpt4 book ai didi

c# - 在 .NET 3.5 c# 中处理大型文本文件

转载 作者:行者123 更新时间:2023-11-30 22:44:08 25 4
gpt4 key购买 nike

我的任务是读取一个大文本文件(大约 150 MB),对其进行解析并在数据网格中显示记录。该文件由括号分隔。

我通过在一个单独的线程中将整个文件读入内存,将信息存储在数据集中,然后将数据集绑定(bind)到位于原始线程中主窗体上的数据网格来完成此操作。

我有两个问题:

  1. 这是最好的方法吗?将 150MB 的文件读入内存是否很大?从事此类工作的最佳做​​法是什么?

  2. 为进程分配的内存量是巨大的.. 这是可以理解的,因为我正在读取如此大的文件。但是,问题是它没有被释放。所以如果我想处理两个文件,就会分配越来越多的内存。直到某个时候程序才会崩溃。我猜数据集对象正在被阻止分配内存的东西引用......无论如何要确定那个对象是什么?有什么工具或方法可以用于此目的吗?

如有任何帮助,我们将不胜感激。在我的编码生涯中,我从未担心过内存管理。谢谢。

最佳答案

  1. 如果您只阅读一个文件并且您不希望它超过 150MB,这是可以接受的。这里的重要因素是您的应用程序的用户有足够的内存来打开文件。 150Mb 并不多,如果达到 150GB,就会有问题。
  2. 这是因为您可能仍然在内存中某处引用了您的文件。可能是因为您在屏幕上显示它。

如果您需要将整个文件加载到内存中以便您的应用程序的用户可以最小化该文件,那么您的手就被束缚了。您可以尝试在用户需要时将记录流式传输。如果您想走这条路,TextReader 和/或 StreamReader 类可能是一个很好的起点。

关于c# - 在 .NET 3.5 c# 中处理大型文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3568172/

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