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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
            {
 
            }
 
 
        }