gpt4 book ai didi

c# - 抛出类型为 'System.OutOfMemoryException' 的异常。 C# 使用内存流时

转载 作者:太空宇宙 更新时间:2023-11-03 10:59:52 29 4
gpt4 key购买 nike

我正在使用 wpf 应用程序,内存流写入方法用于写入 dicom 数据字节。它显示 System.OutOfMemoryException 类型的异常,当尝试写入更大的 dicom 数据时超过 70 MB。您能否提出任何解决方案来解决此问题。

这段代码是这样的

try
{
using ( MemoryStream imagememoryStream = new MemoryStream())
{
while (true)
{
// Retrieve the DICOMData.
// data comes as chunks; if file size is larger, multiple RetrieveDICOMData() calls
// has to be raised. the return value specifies whether the chunk is last one or not.
dicomData = dicomService.RetrieveDICOMData( hierarchyInfo );
imagememoryStream.Write( dicomData.DataBytes, 0, dicomData.DataBytes.Length );
if (dicomData.IsLastChunk)
{
// data is smaller; completed reading so, end
break;
}
}
imageData=imagememoryStream.ToArray();
}
return imageData;
}
catch( Exception exception )
{
throw new DataException( exception.StackTrace );
}

最佳答案

由于缺少连续(不是全部)可用内存,MemoryStream 抛出 OutOfMemoryExceptions 是很常见的。有许多替代实现可以减轻这个问题。看看MemoryTributary例如。

或者,根据您的需要,您可以尝试直接写入存储而不是内存。

关于c# - 抛出类型为 'System.OutOfMemoryException' 的异常。 C# 使用内存流时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18117939/

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