Bonjour

Je développe une application (WPF + C#) devant me permettre de contrôler un appareil photo à distance. Jusqu'à présent pas de problème, j'arrive à déclencher des poses.
Maintenant je voudrais lancer la prise de vue dans un thread séparé pour éviter de bloquer l'interface utilisateur pendant une longue pose. J'ai tenté ceci :

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
 
//méthode Execute d'une classe implémentant ICommand
//vm est le ViewModel lié au datacontext de ma vue
public void Execute(object parameter)
{
    Action dispatchAction = () =>
    {
        //méthode exécutant la prise de vue sur l'appareil connecté
        vm.SelectedCamera.takeBulbPicture(vm.bulbTime);
    };
 
    ThreadStart start = delegate() {
        vm.Dispatcher.Invoke(DispatcherPriority.Normal, dispatchAction); 
    };
 
    new Thread(start).Start(); 
}
Mais cela ne fonctionne pas. La prise de vue est bien exécutée mais l'interface reste bloquée. Qu'ai'je fait de faux ?