J'ai une application WPF dans laquelle un thread vérifie une valeur. Dans certains cas, je montre une fenêtre pop-up Window
afin d'afficher un message. Lorsque je crée cette fenêtre pop-up dans le fil, une exception est levée par le constructeur de la fenêtre pop-up:"Le thread appelant doit être STA, car de nombreux composants IU nécessitent cette erreur" lors de la création d'une fenêtre contextuelle WPF dans le thread
« Le thread appelant doit être STA, parce que de nombreux composants de l'interface utilisateur exigent. »
Comment résoudre cette erreur?
Ceci est mon code pour créer la fenêtre pop-up:
// using System.Threading;
// using System.Windows.Threading;
Thread Messagethread = new Thread(new ThreadStart(delegate()
{
DispatcherOperation DispacherOP =
frmMassenger.Dispatcher.BeginInvoke(
DispatcherPriority.Normal,
new Action(delegate()
{
frmMassenger.Show();
}));
}));
Messagethread.Start();
J'ai trouvé Racine problème. J'ai une minuterie qui, dans chaque timer.tick, vérifie les nouveaux messages, puis affiche chaque nouveau message. Le fil de minuterie rend mon travail si dur. – Rev
Hors sujet: Dans WPF, les fenêtres s'appellent juste cela: "windows"; pas "formes". Ce dernier terme est utilisé dans un autre cadre d'interface utilisateur, Windows Forms. – stakx
@stakx: Merci – Rev