Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从另一个应用程序启动时,应用程序内存不足,但从Visual Studio启动时,内存不足。为什么?_C#_Multithreading_Memory Leaks_Parallel Processing - Fatal编程技术网

C# 从另一个应用程序启动时,应用程序内存不足,但从Visual Studio启动时,内存不足。为什么?

C# 从另一个应用程序启动时,应用程序内存不足,但从Visual Studio启动时,内存不足。为什么?,c#,multithreading,memory-leaks,parallel-processing,C#,Multithreading,Memory Leaks,Parallel Processing,我有一个控制台应用程序,它可以处理大量数据,更具体地说,它可以处理大型位图对象 当我通过VisualStudio启动控制台应用程序时,一切正常。如果我通过new Process()从另一个应用程序启动它,控制台应用程序将遇到内存不足异常(使用Visual Studio中运行良好的相同数据)和一些其他GDI+错误(但我相当确定这些错误是早期内存不足异常的结果) 我已经检查了控制台应用程序从VisualStudio(vshost)运行和从其他应用程序运行时的最大工作内存集是否相同 所以我的问题是:为

我有一个控制台应用程序,它可以处理大量数据,更具体地说,它可以处理大型位图对象

当我通过VisualStudio启动控制台应用程序时,一切正常。如果我通过new Process()从另一个应用程序启动它,控制台应用程序将遇到内存不足异常(使用Visual Studio中运行良好的相同数据)和一些其他GDI+错误(但我相当确定这些错误是早期内存不足异常的结果)

我已经检查了控制台应用程序从VisualStudio(vshost)运行和从其他应用程序运行时的最大工作内存集是否相同

所以我的问题是:为什么会发生这种情况


我还可以提到控制台应用程序是多线程的。

您是否正确地处理了所有实现
IDisposable
的对象?您应该提供一个代码示例,因为它对我们帮助不大。请回顾一下,我正在处理位图并优雅地关闭线程。除此之外,我主要处理的是寿命较短的大字节数组……如果可能的话,我很想提供一个代码示例,但由于代码中没有定义的问题区域(内存不足发生在过程的随机阶段,具体取决于要处理的数据的大小),我不知道从哪里开始。由于它在vshost上的工作方式很有魅力,我不确定代码是否是问题所在。找到ants或scitech之类的探查器,并将其连接到您的程序中,以查看哪些对象没有被处理,应该让您启动。您在这两种情况下是否使用了相同的构建配置(调试/发布,x86/x64)?