Как узнать, когда закончится открытие проекта
После начала нового проекта, я хотел бы знать, когда Petrel завершил создание нового проекта. При подписке на событие DataManager. WorkspaceOpened событие вызывается при открытии рабочей области, но это может не произойти, когда основной поток завершил создание нового проекта.
Есть идеи, когда узнать, когда Petrel закончит создание нового проекта?
1 ответ
Возможно, вы можете попытаться найти другой способ решения вашей основной проблемы, кроме прослушивания события проекта? Не могли бы вы выполнить ленивую оценку и подождать, пока пользователю действительно понадобится ваш код, чтобы делать то, что он будет делать после загрузки проекта?
Иногда вы можете в конечном итоге гоняться за такими проблемами по кругу: мне нужно, чтобы A происходило после B, а B - после C, а C - после A.
Во всяком случае... вот взлом, который вы можете попробовать в IModule:
void WorkspaceOpened(object sender, EventArgs e)
{
Application.Idle += new EventHandler(Application_Idle);
}
void Application_Idle(object sender, EventArgs e)
{
// Deatach from this, since this event can be raised 100 times per second,
// and we only want it once per project.
Application.Idle -= new EventHandler(Application_Idle);
DoMyStuffHereAfterTheProjectHasFinishedOpening();
}