首先,我为任何拼写错误等道歉。英语不是我的第一语言 :)
我已经为 Revit 编写了一个插件,现在正在为插件进行自动更新。我已经对更新进行了排序,但我偶然发现了一个小问题。
我正在检查 Revit 启动时的更新(当 Revit 创建插件应用程序时)
public Result OnStartup(UIControlledApplication application)
{
Result result = CreateApplication(application);
if (result == Result.Succeeded)
{
UpdateService updates = new UpdateService();
try
{
updates.ManageUpdates(application);
}
catch (Exception ex)
{
NotificationManager.Notify("error", ex.InnerException.Message, messageType.error);
}
}
return result;
}
如果有可用更新,我会向用户显示一条消息,询问他/她是否想要更新。如果是,我想为他们关闭 Revit 并开始更新。
问题是此时 Revit 还没有完成自身加载,如果我以编程方式关闭它,它会抛出一个错误,因为它还没有准备好再关闭 5 秒。
System.Threading.Thread.Sleep(5000);
可以解决我的机器上的问题,但不一定会解决用户的问题,所以我需要一种方法来检查 Revit 是否准备好关闭(处于允许关闭的状态)。
所以问题是:有没有办法检查 Revit 是否可以关闭?有没有人遇到过这样的问题并解决了?
(我知道当用户关闭 Revit 时我可以检查更新,但这并不理想......
有任何想法吗?