Ho un'applicazione WPF in cui un thread controlla un valore. In alcuni casi, mostro un pop-up Window
per visualizzare un messaggio. Quando creo questa finestra pop-up nel thread, viene generata un'eccezione dal costruttore del finestra pop-up:"Il thread chiamante deve essere STA, perché molti componenti dell'interfaccia utente richiedono questo" errore durante la creazione di una finestra popup WPF nella discussione
"Il thread chiamante deve essere STA, perché molti componenti dell'interfaccia utente richiedono questo."
Come posso risolvere questo errore?
Questo è il mio codice per creare la finestra 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();
ho trovato problema alla radice. Ho un timer che in ogni timer.tick, controlla i nuovi messaggi e poi mostra ogni nuovo messaggio. Il thread del timer rende il mio lavoro così difficile. – Rev
Off-topic: In WPF, le finestre sono chiamate semplicemente: "windows"; non "forme". Quest'ultimo termine è utilizzato in un altro framework UI, Windows Form. – stakx
@stakx: Grazie – Rev