2012-02-28 8 views
2

私はASP.NET Webアプリケーションを持っており、問題なく8GBメモリを搭載した64ビットWindows 7マシン上で動作する5GBメモリを使用しています。64bitコンソールアプリケーション/ ThreadPoolメモリ不足

しかし、同じマシンに新しいC#コンソールアプリケーションを作成し、Webアプリケーションが使用するのと同じコンポーネントを再利用すると、コンソールアプリケーションのメモリが約1.6GBで不足します(System.Environment.WorkingSetとSystem .Diagnostics.Process.GetCurrentProcess()。WorkingSet64)。まだ多くの物理メモリが残っています。それは2つの異なるマシン上でrepros。

大量のデータを読み込むために、バックグラウンドスレッドを開始するには、WebアプリケーションとコンソールアプリケーションでThreadPool.QueueUserWorkItemを使用します。例外はバックグラウンドスレッドで発生します。

コンソールアプリケーションまたはThreadPoolにデフォルトのメモリ制限設定があるのだろうかと思います。私はこの制限を見るためにどのようなデバッグ変数を見ることができますか?

+5

これは簡単です。デフォルトでは、私のVisual Studio 2010はx86ターゲットを作成します。 x64に変更すると問題が解決します。 –

+0

あなたはそれを自分で見つけてから何か助けを借りているので、このケースではそれを答えることができます。 「未回答」リストから質問を引き出します。 –

答えて

2

これは簡単です。デフォルトでは、私のVisual Studio 2010はx86ターゲットを作成します。 x64に変更すると問題が解決します。