Die Verwendung von Thread ist ziemlich einfach
Thread thread = new Thread(MethodWhichRequiresSTA);
thread.SetApartmentState(ApartmentState.STA);
Wie kann ich dasselbe mit Aufgaben in einer WPF-Anwendung erreichen? Hier ist ein Code:
Task.Factory.StartNew
(
() =>
{return "some Text";}
)
.ContinueWith(r => AddControlsToGrid(r.Result));
Ich erhalte eine InvalidOperationException mit
Der aufrufende Thread muss STA sein, da dies für viele UI-Komponenten erforderlich ist.
c#
wpf
multithreading
thread-safety
task-parallel-library
Michel Triana
quelle
quelle
TaskScheduler.Current
(aus einem WinForms Button Event Handler), konnte nicht verstehen, warum es nicht funktioniert ...Für alle zukünftigen Besucher, die nach der wahren Absicht der Frage suchen:
StaTaskScheduler
( Anleitung ) wie in dieser Antwort angegebenquelle