我有应用程序,它做了一些事情。通常他们的主要任务是在从excel文件获取数据后分析和绘制图表。这个应用程序最多可以同时执行。 10分析,每个分析都在单独的tabPage控件中的单独线程中执行。当出现3个问题时,一切都很棒。
我无法从一个excel文件中读取数据做一些分析。如果我正在使用一个文件到一个分析,并且我想将这个文件用于另一个,那么这是不可能的,因为有一些按摩,这个文件是由另一个进程实际使用的。要从excel文件中读取数据,我正在使用oleDBConnection模式。如何解决这个问题。
将数据写入一个文件时遇到同样的问题。如何强制我的应用程序将相同的消息从不同的线程写入一个文件。
如果我想关闭我的应用程序(当分析之一正在工作时),会向我显示一些通信信息:“中断持续线程(或类似的东西)”。我不知道为什么。我支持这个
请帮助我解决这个问题因为我试图解决它星期一而且没有效果:(
答案 0 :(得分: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)