0

我有应用程序,它做一些事情。一般来说,他们的主要任务是在从 excel 文件中获取数据后分析和绘制图表。此应用程序最多可以同时执行。10 analise 并且它们中的每一个都在单独的 tabPage 控件中的单独线程中执行。在出现 3 个问题的那一刻,一切都很好。

  1. 我无法从一个 excel 文件中读取数据做一些分析。如果我将一个文件用于一个分析,并且我想将同一个文件用于另一个文件,这是不可能的,因为该文件实际上被另一个进程使用了​​一些消息。要从 excel 文件中读取数据,我正在使用 oleDBConnection 模式。如何解决这个问题呢。

  2. 我有同样的问题将数据写入一个文件。如何强制我的应用程序将来自不同线程的相同消息写入一个文件。

  3. 如果我想关闭我的应用程序(当其中一个分析正在工作时),则会向我显示一些通信消息:“中断持续线程(或类似的东西)”。我不知道为什么。我支持这个

请帮我解决这个问题,因为我试图在星期一解决它并且没有效果:(

4

1 回答 1

0

可能的例子

string  FullExcelFilePath = "C:\ExcelFile.xls";


Excel.Application xlApp = new Excel.Application()

Excel.WorkBook xlWorkBook1 = xlApp.WorkBooks.Add(FullExcelFilePath);
Excel.WorkBook xlWorkBook2 = xlApp.WorkBooks.Add(FullExcelFilePath);

//then in your first ThreadCall
foreach(Excel.WorkSheet in xlWorkBook1.Sheets)
{
//get what you want
}


//then in your 2nd ThreadCal
foreach(Excel.WorkSheet in xlWorkBook2.Sheets)
{
//get what you want
}

您可以做的其他选择是:

您可以为另一个线程制作 Xls 的副本,然后

在其他线程中使用 xls 文件的副本。

File.Copy(strFileName, strDestination);

然后然后删除它

File.Delete(strFileNameSecondVersion)
于 2011-02-23T20:50:33.443 回答