2011-02-08 12 views
1

.NETアプリケーションでActiveX DLLを参照していて、大量のデータをロードするユーザーに「プログラムの実行を続行するにはメモリが不足していますこのActiveXオブジェクトから取得します。例外:プログラムの実行を継続するためにメモリが不足しています

この問題を解決するには、どのような方法をお勧めしますか?

このDLLを開発している会社は、このバグを修正するのに非常に興奮しているわけではないので、私はこれを自分で処理しようとしています。

おそらくのActiveXを使用しようとするよりも、他のおかげ

+0

"このDLLを開発する会社はバグを修正するのに非常に興奮していません" - なぜですか? –

+0

彼らの怠け者と私はそれらに依存しているので、私は彼らの製品を使用し続ける必要があります – eyal

+0

どのくらいのメモリは、落ちる前に、ActiveX DLLが消費しようとしますか? –

答えて

0

それはメモリではなく、あなたのコードを消費しているActiveXコントロールであると仮定すると、私はあなたが何かできることがあることをわからないんだけど、わずかに異なる方法で制御します。たとえば、次のようにメモリを少なくするか、この例外に対して保護します。

  • あまりにも多くのデータセットを一度に読み込まないようにします。
  • 何とか大きなデータセットをいくつかの小さなデータセットに分割します。
  • 64ビットプロセスを使用します。
  • 何らかの形で複数のプロセスにメモリの負荷を分割してみてください。

もちろん、これはすべてActiveXコントロールの仕様に依存するため、コントロールの詳細を知らなくてもこれが実現可能かどうかは分かりません。

this answerによれば、プロセスごとのメモリ制限を少し増やすことができるmachine.config設定があります。この質問の2番目の回答も読んでください起こる

関連する問題