Dispatcher.BeginInvoke ... Zwei Möglichkeiten, was ist besser?
-
Hi,
ich würde gern kurz eine kleine Verständnis-Frage klären, die sich mir grade auftut.
Und zwar ist es ja so, dass beim Aktualisieren bestimmter Control-Elemente ein "Dispatcher.BeginInvoke" gemacht werden muss damit das klappt (so richtig verstanden habe ich das noch nicht, aber ich weiss wie ich es anwenden muss).
Nun sehe ich gerade, dass es da zwei Variationen gibt. Beide scheinen gleich zu funktionieren:
Variante 1:
Dispatcher.BeginInvoke(new ThreadStart(delegate { // Hier der Code für die Control-Elemente }));
Variante 2:
Dispatcher.BeginInvoke(new Action(() => { // Hier der Code für die Control-Elemente }));
Was ist der Unterschied und was ist besser bzw. unproblematischer?
Grüsse
Ank
-
Variante 1 ist ja völlig falsch.
-
Eigentlich sollte
Dispatcher.BeginInvoke(() => { // Hier der Code für die Control-Elemente });
ausreichend sein.
Ansonsten sind das im Prinzip nur verschiedene Schreibweisen für die gleiche Sache.
-
wtf= schrieb:
Variante 1 ist ja völlig falsch.
Nö das passt schon.
Der NameThreadStart
ist in dem Zusammenhang sehr unglücklich, aber rein technisch geht das schon in Ordnung.
-
hustbaer schrieb:
Eigentlich sollte
Dispatcher.BeginInvoke(() => { // Hier der Code für die Control-Elemente });
ausreichend sein.
Da bekomme ich eine lambda/Delegat-Konvertierung Fehlermeldung.
Aber trotzdem danke, Variante 2 scheint "normaler" zu sein, also nehm ich die.