Précédent   Forum du club des développeurs et IT Pro > Dotnet > Général Dotnet > Débuter
Débuter Forum d'entraide pour bien débuter avec Dotnet
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 20/09/2012, 22h13   #1
Yann57
Invité de passage
 
Inscription : septembre 2012
Messages : 9
Détails du profil
Informations forums :
Inscription : septembre 2012
Messages : 9
Points : 0
Points : 0
Par défaut DispatcherTimer ne rafraichis pas l'interface à tous les coups

Bonjour,

Dans une de mes applications WPF, j'utilise un activeX qui me permet d'afficher un flux vidéo.

Je suis en train de faire des cycles de vidéos, un activeX qui prends la place de l'autre tous les X temps, pour changer de flux vidéo sur le même emplacement.

Pour ce faire, j'utilise DispatcherTimer, qui me paraissait adapté à la situation.
Seulement, quand j'utilise plusieurs cycles de vidéos, alors l'affichage de vient très aléatoire, parfois ça s'affiche d'autre fois non, comme si la partie rafraîchissement de l'interface n'arrivait pas à suivre. Là où c'est vraiment gênant, c'est que la consommation processeur n'est vraiment pas élevé (moins de 10%).

Ma question est donc, DispatcherTimer est-il vraiment adapté ? Son implémentation est-elle bonne ? Quelle autre solution existe-t-il ?

Mon implémentation du DispatcherTimer :
Code :
1
2
3
4
5
6
7
8
 
...
 
timer_cycle = new DispatcherTimer(DispatcherPriority.Send);
timer_cycle.Interval = TimeSpan.FromSeconds(orders[0][2]);
timer_cycle.Tick += SetNextVideo;
 
timer_cycle.Start();

Partie rafraîchissement de l'interface :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
 
        private void ShowContainerCycle(int position, String title)
        {
            try
            {
                WindowsFormsHost host = (WindowsFormsHost)this.camera_container_parent.Children[position + 1];
                host.Visibility = System.Windows.Visibility.Visible;
                host.Height = this.video_container.ActualHeight;
                host.Width = this.video_container.ActualWidth;
 
                this.title.Content = title;
            }
            catch
            {
 
            }
 
 
        }
Yann57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 19h41.


 
 
 
 
Partenaires

Hébergement Web