【问题标题】:64bit Console app / ThreadPool out of memory64 位控制台应用程序/线程池内存不足
【发布时间】: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


【解决方案1】:

这很简单。默认情况下,我的 Visual Studio 2010 创建 x86 目标。将其更改为 x64 即可解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 2016-05-21
    • 1970-01-01
    • 2011-08-31
    相关资源
    最近更新 更多