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

我记得Raymond Chen的一篇文章。如果您为特定机器加载太多相同的进程,操作系统会阻止您。每台机器都不同(因为它基于机器的性能)。

但是,我不能将 25 视为限制。这似乎有点太小了,即使对于旧机器也是如此。您的任何文件是否引用了来自相同文件的数据,导致其中一些文件过早关闭,因为另一个 Excel 实例正在锁定该文件?

我需要更多信息来了解实际情况。

于 2012-06-22T15:16:29.733 回答