var t = new Thread(new ParameterizedThreadStart(DoWork));
t.SetApartmentState(ApartmentState.STA);
t.IsBackground = true;
t.Start(App.Current.MainWindow);
public static void DoWork(object owner)
{
var progressDlg = new ProgressBarDialog();
// progressDlg.Owner = (Window)owner; // This doesn't work
progressDlg.ShowDialog();
}
Maintenant, dites-moi s'il vous plaît est-il possible de le faire fonctionner?Comment accéder à Window depuis un autre thread?
App.Current.MainWindow dans l'exemple non accessible à partir d'un autre thread.
Et aussi j'ai entendu parler de la nouvelle façon cool de Parallel.Invoke() mais je ne sais pas est-ce applicable à cette situation ou non. J'apprécie que vous me montriez comment cela fonctionne.
Je ne peux que supposer ProgressBarDialog est une fenêtre de quelque sorte, je suppose une fenêtre WPF. Vous ne pouvez pas créer un élément d'interface utilisateur dans un thread et définir le propriétaire sur quelque chose qui appartient à un thread différent. –