Это простая программа, которую я пытался сделать это в многопоточной, но я получил «из памяти» исключение:
class Program
{
private static int fileID=0;
static void Main(string[] args)
{
List<Thread> threadPool = new List<Thread>();
int threadCount = 20;
for(int i=0;i<threadCount;i++)
{
System.Threading.Thread reportThread = new System.Threading.Thread(() => GenerateThousandSheets());
threadPool.Add(reportThread);
reportThread.Start();
}
threadPool.ForEach(x => x.Join());
Console.WriteLine("Finished!");
Console.ReadKey();
}
private static void GenerateThousandSheets()
{
FileInfo newFile = new FileInfo(outputDir.FullName + @"\sample6.xlsx");
ExcelPackage pck = new ExcelPackage(newFile);
ExcelWorksheet ws = pck.Workbook.Worksheets[0];
for(int x= 0;x<1000;x++)
{
int newPosition = ws.Index + x;
pck.Workbook.Worksheets.Copy("Template","Sheet"+x);
}
FileInfo outputFile = new FileInfo(outputDir.FullName +fileID+ "-output.xlsx");
pck.SaveAs(outputFile);
counter++
}
}
Как выстрел в темноте, ваша программа составлена для 32 -битный или 64-битный? –
Это исправлено для «Any CPU», но я запускаю его на 32-битной ОС. Есть идеи? – jxnim
Можете ли вы разместить свой код? Недостаточно информации, чтобы придумать другие предложения. –