C# &引用;“检测到断开连接的上下文”;在C中释放Excel对象时出错#
我正在尝试在使用Excel对象后释放它们。这是我的密码:C# &引用;“检测到断开连接的上下文”;在C中释放Excel对象时出错#,c#,visual-studio,com,C#,Visual Studio,Com,我正在尝试在使用Excel对象后释放它们。这是我的密码: Excel._Application app = new Excel.Application(); Excel._Workbook workbook = app.Workbooks.Add(Type.Missing); Excel._Worksheet worksheet = null; app.Visible = true; worksheet.Cells[1, 1] = "test string"; workbook.SaveAs
Excel._Application app = new Excel.Application();
Excel._Workbook workbook = app.Workbooks.Add(Type.Missing);
Excel._Worksheet worksheet = null;
app.Visible = true;
worksheet.Cells[1, 1] = "test string";
workbook.SaveAs("C:\testfile.xlsx");
object misValue = System.Reflection.Missing.Value;
workbook.Close(true, misValue, misValue);
app.Quit();
releaseObject(worksheet);
releaseObject(workbook);
releaseObject(app);
我的releaseObject方法:
private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show("Unable to release the Object " + ex.ToString());
}
finally
{
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();
}
}
调试器第一次进入releaseObject时,它在第一行“GC.WaitForPendingFinalizers();”中给出一个错误:
上下文0xdf76a0'已断开连接。从中释放接口
当前上下文(上下文0xdf7450)。这可能会导致数据损坏或丢失
损失。为避免此问题,请确保所有
上下文/单元保持活动状态,直到应用程序完全启动
使用表示COM组件的RuntimeCallableWrappers完成
他们住在里面
我怎么才能知道呢?我已经添加了一篇关于这个问题的帖子。我希望它能帮助那些面临同样错误的人: