gpt4 book ai didi

c# - 为什么 ReadAllLines 在 WPF 中有效但在 ConsoleApp 中无效

转载 作者:行者123 更新时间:2023-11-30 19:39:52 29 4
gpt4 key购买 nike

我正在对读取 CSV 文件的不同方式进行一些基准测试,发现了一个“奇怪”的问题。问题是当我在控制台应用程序中使用此方法时:

        var lines = File.ReadAllLines(fileName); // OutOfMemoryException
foreach (var line in lines)
{
//doing stuff
}

我得到一个 OutOfMemoryException,但是当我在我的 WPF 项目中使用相同的方法时它工作正常。我测试它的文件是 730MB,我知道不能在更大的 CSV 文件上使用 ReadAllLines,但为什么这个方法在 WPF 应用程序中有效,但在控制台应用程序中无效?

最佳答案

您正在使用 32 位进程并遭受地址空间碎片的困扰。这意味着运行时无法分配足够的连续内存,尽管总共有足够的内存可用。 WPF 可能只是倾向于具有更好的内存布局。

将项目更改为 64 位。

或者,使用 File.ReadLines 流式传输文件.

关于c# - 为什么 ReadAllLines 在 WPF 中有效但在 ConsoleApp 中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25930413/

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