2016-12-06 2 views
0

Visual Studio 2012 - Application Windows 8 Metro. J'ai mis en œuvre Timer pour afficher l'heure actuelle dans mon application. il fonctionne comme prévu ci-dessous le codeL'horloge de minuterie ne fonctionne pas après la minimisation de l'application - Application Windows 8 Metro

ThreadPoolTimer.CreatePeriodicTimer(async (timer) => 
      { 
       this.Dispatcher.RunAsync(CoreDispatcherPriority.Low, 
       () => 
       { 
        this.tbDigitalClock.Text = DateTime.UtcNow.ToString("MM/dd/yyyy HH:mm") + " UTC"; 
       }); 
      }, TimeSpan.FromSeconds(60)); 

Après avoir minimisé et attendre 5 minutes & maximiser la fenêtre de l'application. J'ai été capable de remarquer que l'heure de l'application est inférieure à 5 minutes par rapport à l'heure actuelle.

Je ne sais pas pourquoi je vois ce décalage horaire. Se pourrait-il que le thread d'arrière-plan est incapable de lier les éléments de l'interface utilisateur lorsque l'interface utilisateur est inactive?

Note: Ceci fonctionne bien dans les fenêtres 10 mais ne fonctionne pas dans Windows 8.

Répondre

0

Faire CoreDispatcherPriority de bas à la normale fait fonctionner dans Windows 8 ainsi.

CoreDispatcherPriority.Normal