C# Visio在我关闭文档时提示我保存文档,尽管我刚刚保存了文档
我编写了一个Visio2010加载项(用C#)来处理许多Visio文档。在Ribbon1.button1\中,单击我调用的新线程(processVisioFiles)方法,该线程在一个大循环中处理所有vsd文件(需要40分钟以上) 每次以编程方式关闭Visio vsd文档之前,我都会执行C# Visio在我关闭文档时提示我保存文档,尽管我刚刚保存了文档,c#,multithreading,add-in,office-interop,visio,C#,Multithreading,Add In,Office Interop,Visio,我编写了一个Visio2010加载项(用C#)来处理许多Visio文档。在Ribbon1.button1\中,单击我调用的新线程(processVisioFiles)方法,该线程在一个大循环中处理所有vsd文件(需要40分钟以上) 每次以编程方式关闭Visio vsd文档之前,我都会执行document.Save(),然后执行document.close()。然而,它们有很多文档(不是全部,但总是相同的),这会提示我手动保存它们 我需要说的是,当我用UI在一个线程内启动大循环时,我没有手动保存文
document.Save()
,然后执行document.close()
。然而,它们有很多文档(不是全部,但总是相同的),这会提示我手动保存它们
我需要说的是,当我用UI在一个线程内启动大循环时,我没有手动保存文档的问题
private void button1_Click(object sender, RibbonControlEventArgs e)
{
exportAddIn.processVisioFiles(startFolder, false);
StartTheThread(startFolder, false);
}
但随后Visio UI冻结(“应用程序未响应”消息),并且在特定时间后,Visio中止所有文件的循环
我测试了如何使用document.SaveAs(…)
和document.SaveAsEx(…)保存,以及
但结果是一样的。每次相同的Visio文件未保存且未保存时,UI都会提示用户手动保存或放弃更改。
如何以编程方式保存和关闭而不提示用户手动执行此操作
p、 此外(在调试模式下),我在document.Save()之后等待了一段时间,然后转到document.Close()行,但结果是一样的 尝试在.Save()之前添加DoEvents
可能是打字错误,但
documend.Saved
?这是一个打字错误,谢谢,但不幸的是,这不起作用。我尝试的是将保存的属性设置为true:Globals.ThisAddIn.Application.ActiveDocument.Saved=true
文档.Close()代码>这样做有效,但我仍然不明白为什么:document.Save()
文档.Close()代码>不起作用
private void button1_Click(object sender, RibbonControlEventArgs e)
{
exportAddIn.processVisioFiles(startFolder, false);
StartTheThread(startFolder, false);
}
if(document.Saved == false)
{
document.Save();
}
document.Close();
System.Windows.Forms.Application.DoEvents();
document.Save()