【发布时间】:2012-03-17 12:51:58
【问题描述】:
我有一个 ASP.NET Web 应用程序,它使用 5GB 内存在 64 位 Windows 7 机器上运行,8GB 内存没有任何问题。
但是,当我在同一台机器上创建新的 C# 控制台应用程序并重用 Web 应用程序使用的相同组件时,控制台应用程序的内存不足大约 1.6GB(通过查看 System.Environment.WorkingSet 和 System. Diagnostics.Process.GetCurrentProcess().WorkingSet64)。仍然有大量的物理内存。它在 2 台不同的机器上重现。
Web 应用和控制台应用都使用 ThreadPool.QueueUserWorkItem 启动后台线程来加载大量数据。异常发生在后台线程。
我想知道控制台应用程序或线程池是否有任何默认内存限制设置。我可以查看哪些调试变量来查看此限制?
【问题讨论】:
-
这很简单。默认情况下,我的 Visual Studio 2010 创建 x86 目标。将其更改为 x64 即可解决问题。
-
让它成为答案并接受 - 在这种情况下完全可以这样做,因为您自己发现它没有任何帮助。将问题排除在“未回答”列表之外。
标签: c# .net console-application threadpool out-of-memory