我尝试创建 ac# excel 2007 Add-In,并且我想做“更快”的“beforeSave”方法。我只是使用一个线程(并尝试任务和 task.factory),但它总是说同样的错误。
编码。
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
this.Application.WorkbookBeforeSave += new Microsoft.Office.Interop.Excel.AppEvents_WorkbookBeforeSaveEventHandler(Application_WorkbookBeforeSave);
}// thisAddIn_startup method end
public void Application_WorkbookBeforeSave(Microsoft.Office.Interop.Excel.Workbook Wb, bool SaveAsUI, ref bool Cancel)
{
backendworker bwfs = new backendworker();// its a custom standalone class!
Task task1 = new Task(() => bwfs.MyBeforeSave(this.Application.ActiveWorkbook));
task1.Start();
}// application_workbookbeforesave method end
后勤班:
public class backendworker
{
// BeforeSave method
public void MyBeforeSave(Microsoft.Office.Interop.Excel.Workbook Wb)
{
Wb.SaveCopyAs("c:\\temp\\temp.xls");
}// method end
}// class end
没有线程(任何类型)都可以,它可以保存整个工作簿。但。对于任何多线程解决方案,它的抛出错误。(来自 HRESULT 的异常:0x800AC472)
知道我做错了什么吗?或者想法如何解决它?:D