Во-первых, прошу прощения за опечатки и т. Д. Английский не мой родной язык :)
Я написал надстройку для Revit и сейчас работаю над автоматическим обновлением надстройки. У меня уже есть отсортированные обновления, но я наткнулся на небольшую проблему.
Я проверяю наличие обновлений при запуске Revit (когда Revit создает приложение Addin)
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, но это не идеально ...
Любые идеи?