Bonjour,

Dans une petit appli WPF de type lecteur MP3, je souhaite lier un contrôle de type Slider avec le déroulement d'un morceau MP3 (Lecteur.CurrentPosition).
Lecteur étant un objet de la classe AudioVideoPlayBack.Audio
Et CurrentPosition donnant la position courante en milliseconde (double) du morceau.


Je tente donc de mettrer à jour le slider grâce à la classe Dispatcher, vu qu'en WPF, on ne peut accéder à slider.value en dehors du thread principal.

Mais c'est sans effet. Le slider reste immobile, tandis que le morceau de musique est lu.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private delegate void AppelMethodeDelegate();
        
        private void btnLecture_Click(object sender, RoutedEventArgs e)
        {
           
       CtrLecture._lire();
       AppelMethodeDelegate appel = new AppelMethodeDelegate(_derouler);
       sliderMorceau.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Send, appel);        }


        private void _derouler()
        {
            sliderMorceau.Value = CtrLecture.Lecteur.CurrentPosition;        }
Je sais que plusieurs sujets ont été lancés concernant le multithreading, mais je n'ai rien trouvé qui réponde à mon besoin.