Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Excel.SaveAs-我需要等待流程完成吗?_C#_Excel_Office Interop - Fatal编程技术网

C#Excel.SaveAs-我需要等待流程完成吗?

C#Excel.SaveAs-我需要等待流程完成吗?,c#,excel,office-interop,C#,Excel,Office Interop,执行.SaveAs后,是否需要确保excel文件已保存,然后才能关闭并释放对象?如果是,怎么做?见下面的代码: Excel.Application xlApp = new Excel.Application() Excel.Workbook xlWorkbook; Excel.WOrksheet xlWorksheet; string xlPath = @"C:\excelfile.xlsx"; //Do sexy stuffs to the excel file xlWorkbook.S

执行
.SaveAs
后,是否需要确保excel文件已保存,然后才能关闭并释放对象?如果是,怎么做?见下面的代码:

Excel.Application xlApp = new Excel.Application()
Excel.Workbook xlWorkbook;
Excel.WOrksheet xlWorksheet;

string xlPath = @"C:\excelfile.xlsx";

//Do sexy stuffs to the excel file

xlWorkbook.SaveAs(xlPath);

//Do I need the following?
while (!File.Existts(xlPath))
{
    Thread.Sleep(1000);
}

xlWorkbook.Close()
xlApp.Quit();

Marshal.ReleaseComObject(xlWorkbook);
Marshal.ReleaseComObject(xlApp);
Marshal.ReleaseComObject(xlWorksheet);

我认为您不需要它,因为它看起来像一个同步方法,您可以自己测试它吗?而且,如果文件已经存在并等待被覆盖,那么文件存在检查将无法按计划工作。我不确定如何测试。在excel中添加数千行数据,看看是否可以保存?至于您提到的文件存在性,在编写此代码之前,我已经确定没有现有文件。代码始终在创建新的excel文件。请测量此行运行所需的时间。如果它很慢(比如至少几百毫秒),那么你(很可能)不需要等待。如果时间随着excel文件的大小而增加,尤其如此。@Alireza,我可以用秒表吗<代码>在那一行之前.Start(),在那一行之后
.Stop()
?我同意@Hendry的观点。Office对象模型大部分是同步的。25年来,我从来没有听说过关闭和退出SaveAs的问题,无论该文件有多大或多复杂。我很确定你不必担心,也不需要睡眠。我想你不需要它,因为它看起来像一个同步方法,你能自己测试一下吗?而且,如果文件已经存在并等待被覆盖,那么文件存在检查将无法按计划工作。我不确定如何测试。在excel中添加数千行数据,看看是否可以保存?至于您提到的文件存在性,在编写此代码之前,我已经确定没有现有文件。代码始终在创建新的excel文件。请测量此行运行所需的时间。如果它很慢(比如至少几百毫秒),那么你(很可能)不需要等待。如果时间随着excel文件的大小而增加,尤其如此。@Alireza,我可以用秒表吗<代码>在那一行之前.Start(),在那一行之后
.Stop()
?我同意@Hendry的观点。Office对象模型大部分是同步的。25年来,我从来没有听说过关闭和退出SaveAs的问题,无论该文件有多大或多复杂。我很确定你不必担心,也不需要睡觉。