gpt4 book ai didi

c# - 在单个应用程序实例中加载大量位图时 WPF 内存不足异常。有限制吗?

转载 作者:IT王子 更新时间:2023-10-28 23:33:59 27 4
gpt4 key购买 nike

我需要将大量位图加载到内存中以在 WPF 应用程序中显示(使用 .net 4.0)。我遇到麻烦的地方是当我接近 1,400MB 的内存时(我是从任务管理器的进程列表中获取的)。

无论应用程序是在内存为 4GB 还是 6GB 的机器上运行(以及其他一些我没有详细信息的配置),都会发生同样的事情。通过减少加载的图像很容易测试,当它在一台机器上运行时,它可以在所有机器上运行,但是当它在一台机器上崩溃时,它也可以在所有机器上运行。

当我减少图像数量并允许应用程序加载而不会导致内存异常时,我可以运行应用程序的多个实例(超过单个实例的 1.4GB)而不会出现问题,因此它似乎是每个实例的限制或我的每个实例错误。

我将图像加载为 BitmapImage,它们要么存储在 List<BitmapImage> 中或加载到 List<byte[]>它们后来在一堆分层序列中使用(使用 Writeablebitmap )

当我加载图像而不是在使用时发生错误。在可重复的情况下,我加载了 600 张 640X640 图像以及另外 200-300 张从 100X100 到 200X200 的较小图像,尽管这似乎是一个整体位数的问题。

所以我的问题是:

*在这种情况下是否有一些内置的每个进程内存限制?

*有没有更好的技术将大量图像数据加载到内存中?

谢谢,布赖恩

最佳答案

是的,每个进程的内存分配有限制。解决方案之一是让您的二进制 LARGEADDRESSAWARE 占用更多内存。

请参阅 Out of memory? Easy ways to increase the memory available to your program ,它围绕解决方案进行了很好的讨论。

关于c# - 在单个应用程序实例中加载大量位图时 WPF 内存不足异常。有限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3911568/

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