可以在multithreading中对Excel表进行sorting?

我的代码如下:

Parallel.ForEach(listSheets, (xlWorkSheet1) => { // Excel.Worksheet xlWorkSheet1 = (Excel.Worksheet)excelbk.Worksheets["Sheet1"]; xlRange = (Excel.Range)xlWorkSheet1.Cells[xlWorkSheet1.Rows.Count, 1]; lock (xlRange) { // nRows = (long)xlRange.get_End(Excel.XlDirection.xlUp).Row; nRows = xlWorkSheet1.UsedRange.Cells.Rows.Count; xlRange = (Excel.Range)xlWorkSheet1.Rows["5:" + nRows, Type.Missing]; xlRange.Sort(xlRange.Columns[clnum1, Type.Missing], Excel.XlSortOrder.xlAscending, xlRange.Columns[clnum2, Type.Missing], Type.Missing, Excel.XlSortOrder.xlAscending, Type.Missing, Excel.XlSortOrder.xlAscending, Excel.XlYesNoGuess.xlNo, Type.Missing, Type.Missing, Excel.XlSortOrientation.xlSortColumns, Excel.XlSortMethod.xlStroke, Excel.XlSortDataOption.xlSortTextAsNumbers, Excel.XlSortDataOption.xlSortNormal, Excel.XlSortDataOption.xlSortNormal); Console.WriteLine("Sheet{0} have been sorted", xlWorkSheet1.Name); } } 

listSheets被定义为一个List,当我debugging它时,它显示错误,COMexception,该问题已经运行。

System.Runtime.InteropServices.COMException应用程序正忙(RPC_E_CALL_REJECTED 0x80010001)调用被调用者拒绝(RPC_E_SERVERCALL_RETRYLATER 0x8001010A)

Excel不支持multithreading互操作调用。 在内部,它是multithreading的。 例如,您可以在选项页面中启用multithreading重新计算,显着提高性能。 但是,恐怕不能实现multithreading互操作。

正如code4life所说:Excel不支持multithreading互操作调用。 而且由于Excel的Sort方法在最新版本中已经是multithreading的,所以尝试multithreading的东西已经没有意义了。