Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
>> WPF }, TaskScheduler.FromCurrentSynchronizationContext()); } Listing 551: Ausführung einer Schleife mit Aktualisierung von Steuerelementen in einem Task (Forts.) 811 Dieser Code sieht aufgrund der verwendeten Lambda-Ausdrücke etwas »wild« aus. Ich denke, eine kleine Erläuterung ist hier sinnvoll: Task.Factory.StartNew wird ein Lambda-Ausdruck übergeben, der dem Action -Delegaten ent- spricht (der also keine Argumente und keine Rückgabe besitzt). In der anonymen Methode des Lambda-Ausdrucks erfolgt die eigentliche Arbeit, die hier nur simuliert wird. Wichtig ist, dass Sie innerhalb dieser Methode threadsicher über den Dispatcher des Fensters oder der Steuer- elemente auf die Oberfläche zugreifen. Um auf das Ende des Tasks reagieren zu können, wird ContinueWith mit einem Lambda-Aus- druck aufgerufen, der dem Delegaten Action<Task> entspricht, wobei das Task -Argument igno- riert wird. Da ContinueWith der Taskscheduler der Oberfläche übergeben wird, wird der enthaltene Code automatisch im UI-Thread ausgeführt und muss deswegen nicht über Invoke umgeleitet werden. WPF Eine Einführung zu Lambda-Ausdrücken finden Sie in dem Artikel »Lambda-Ausdrücke und Ausdrucksbäume« in den Buchdaten im Ordner Zusatzartikel .