【发布时间】:2014-03-02 02:45:21
【问题描述】:
我在处理图像时在我的 C# 应用程序中收到 Out of Memory exception。我正在我的电脑上测试它,我有 8GB 的内存,比应用程序使用的要多得多。
我检查了GC.TotalMemory(false)。在处理运行之前它说(转换为 MB)2MB,在没有等待垃圾收集之后它说 4MB。在处理过程中,峰值达到 81 MB。
我首先认为这与绑定限制有关,因为它在 WCF 服务中工作,但没有找到任何可能导致该异常的参数。
我认为我的应用程序在峰值使用 81MP 内存时运行应该没有问题,甚至更多。我做错了什么? -- 谢谢。
运行处理的循环:
Parallel.For(0, count, i =>
{
Task<int>.Factory.FromAsync(proxy.BeginSaveImage(sp, new AsyncCallback(CompleteSave), state), proxy.EndSaveImage).ContinueWith(result => {});
});
并行运行,异步调用图像处理方法。
【问题讨论】:
-
你能发布一些代码吗?你的程序有递归吗?
-
那是哪个操作系统?
-
能否编译为 64 位应用程序并重试?
-
获取调用堆栈...至少您会看到它发生在哪里以及它是否是您的代码...
-
在 Windows 7 操作系统上运行。我运行循环处理图像的代码。我会提供一个代码..
标签: c# .net wcf exception out-of-memory