Microsoft Surface: где определить методы, которые будут вызываться только при запуске? - PullRequest
1 голос
/ 12 января 2011

У меня есть несколько методов, которые следует вызывать только при запуске приложения.На данный момент я поместил методы в OnApplicationActivation:

private void OnApplicationActivated(object sender, EventArgs e)
{
   Sound.loadSounds();             
   GetLocalProjects();
   GetProjects();            
}

Но OnApplicationActivation также вызывается, если приложение находилось в состоянии «паузы» (отображается оболочка) и реагирует.Как я могу избежать этого?Я хочу вызывать эти методы только во время запуска.

Ответы [ 3 ]

1 голос
/ 12 января 2011

Я ничего не знаю о Microsoft Surface, поэтому не могу сказать вам, есть ли какое-то другое событие, которое может быть подключено, но было бы нелегко исправить использование логической переменной экземпляра для проверки, имеет ли инициализация сделано или нет?

bool _isInitialized = false;
private void OnApplicationActivated(object sender, EventArgs e) {    
  if( !_isInitialized ){
    Sound.loadSounds();
    GetLocalProjects();
    GetProjects();          
    _isInitialized = true;   
  }
}
0 голосов
/ 12 января 2011

Как бы вы сделали это для не-Surface приложения?Переопределите OnInitialized в вашем главном окне.

0 голосов
/ 12 января 2011
boolean startup = true;
private void OnApplicationActivated(object sender, EventArgs e)
{
   If (startup)
   {
   Sound.loadSounds();             
   GetLocalProjects();
   GetProjects();
   startup = false; 
   }           
}

Лучшее быстрое решение, которое я мог придумать

...