繁体   English   中英

如何处理内存不足异常字符串生成器

[英]How to handle out of memory exception string builder

我有希望返回字符串的此方法,但是该字符串可能很大(以GB为单位)。 当前,这会遇到内存不足异常。

我以为我会写一个文件(随机文件名),然后读它删除该文件并发回响应。 尝试了MemoryStreamStreamWriter ,它们也遇到内存不足异常。

不想使用容量初始化StringBuilder ,因为大小未知,我认为它需要连续的内存块。

解决此问题的最佳方法是什么?

    public string Result()
    {
        StringBuilder response = new StringBuilder();
        for (int i = 1; i <= Int.Max; i++)
        {
            response.Append("keep adding some text {0}", i);
            response.Append(Environment.NewLine);
        }

        return response.ToString();
    }

即使可以解决StringBuilder上的内存问题,通过调用response.ToString()生成的字符串也将大于.NET中字符串的最大长度,请参阅: https : //stackoverflow.com/a/140749/ 3997704

因此,您将必须使函数将其结果存储在其他位置,例如存储在文件中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM