3

私がそうするなら(例えば)

 for (int i=0;i<22;i++)
 {
     var app = new Excel.Application();
 }

次に、22のExcelプロセスが作成されます。

しかし、私がそうするなら

 for (int i=0;i<25;i++)
 {
     var app = new Excel.Application();
 }

22個のExcelプロセスが作成されますが、ほとんどが消え、残りはわずかです。

22程度の制限はありますか?これを増やすことはできますか?

ありがとう!

編集:次のコードでは発生しません:

 var apps = new List<Application>();
 for (int i=0;i<25;i++)
 {
      apps.Add(new Application());
 }
4

2 に答える 2

2

ガベージコレクションが開始されました...次のコードで動作します:

 var apps = new List<Application>();
 for (int i=0;i<25;i++)
 {
      apps.Add(new Application());
 }
于 2012-06-22T15:34:24.480 に答える
0

レイモンド・チェンの記事を覚えています。特定のマシンに同じプロセスをロードしすぎると、OSが切断されてしまいます。これはマシンごとに異なります(マシンのパフォーマンスに基づいているため)。

しかし、25が限界だとは思えません。古いマシンでも、それは少し小さすぎるようです。同じファイルのデータを参照しているファイルの中に、Excelの別のインスタンスがファイルをロックしているために、一部のファイルが途中で閉じてしまうものがありますか?

実際に何が起こっているのかを知るには、もっと情報が必要です。

于 2012-06-22T15:16:29.733 に答える