fand ich diesen Code:Was ist die Verwendung von Invoke() in .net?
this.Invoke(new EventHandler(EventGetSum));
Ist das nicht das gleiche wie das Schreiben:
EventGetSum();
Was nützt das?
fand ich diesen Code:Was ist die Verwendung von Invoke() in .net?
this.Invoke(new EventHandler(EventGetSum));
Ist das nicht das gleiche wie das Schreiben:
EventGetSum();
Was nützt das?
Wenn Sie schreiben EventGetSum()
, dass sofort Aufrufe die EventGetSum-Methode.
Wenn Sie new EventHandler(EventGetSum)
schreiben, wird ein Delegat erstellt, der EventGetSum aufruft, wenn er aufgerufen wird.
Der Aufruf an Control.Invoke
ruft den angegebenen Delegaten aus dem UI-Thread auf, der für das Steuerelement verantwortlich ist. Dies ist notwendig, weil Sie nicht auf Benutzeroberflächenelemente aus beliebigen Threads zugreifen dürfen.
Es führt die EventGetSum
Methode im Thread, zu dem das Fenster this
gehört.
Dies wird normalerweise bei Cross-Thread-UI-Aufrufen verwendet.
Schauen Sie sich die MSDN-Dokumentation für ISynchronizeInvoke an.
Das ist ein ziemlich schlechter Titel, vielleicht sollten Sie darüber nachdenken, es in etwas beschreibender zu ändern – grapefrukt
Überprüfen Sie diese Frage http://StackOverflow.com/Questions/571706/shortest-way-to-write-a-thread-safe-access -method-to-a-windows-forms-control/571749 # 571749 – alex2k8