ac# Excel 2007 アドインを作成しようとしていますが、「beforeSave」メソッドを「より速く」実行したいと考えています。私は単純にスレッドを使用します(そしてタスクとタスク.ファクトリーも試します)が、常に同じエラーが発生します。
コード。
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