und Wählen Sie Invoke()
BeginInvoke()
Der Schlüssel zur effizienten Programmierung besteht darin, den subtilen Unterschied zwischen ähnlichen Methoden zu verstehen.
Invoke()
BeginInvoke()
und
Invoke()
Die Methode ist so konzipiert, dass die Methode im selben Thread wie der Anrufer ausgeführt wird, um Operationen gleichzeitig auszuführen. Dies bedeutet, dass das Aufrufen von Threads wartet, bevor die Genehmigungsmethode abgeschlossen ist. BeginInvoke()
im Gegenteil, asynchrone Operation. Es wird auf einem separaten Faden aufgerufen (normalerweise ein Faden im Fadenpool). Es ist erwähnenswert, dass ein
Invoke()
und BeginInvoke()
BeginInvoke()
IAsyncResult
und : Invoke()
BeginInvoke()
: Synchron Ausführungsmethode und warten Sie, bis sie abgeschlossen ist. Diese Methode gilt, wenn die Ergebnisse sofort ausgeführt und abgerufen werden müssen.
Delegate.Invoke()
Delegate.BeginInvoke()
: Asynchrone Ausführungsmethode und ermöglichen Sie, dass die Ausführung weiter aufgerufen werden kann, ohne darauf zu warten, abgeschlossen zu werden. Diese Methode ist sehr günstig, wenn der CEO die Aufgabe lange ausführt und den Anrufer nicht blockieren möchte.
Delegate.Invoke()
und
Delegate.BeginInvoke()
: Die Methode wird im GUI -Thread ausgeführt, aber es wartet nicht, bis sie abgeschlossen ist. Dies ist sehr nützlich, um die Benutzeroberfläche zu aktualisieren, ohne die Ausführung der Call Party zu beeinflussen. Control.Invoke()
Control.BeginInvoke()
Control.Invoke()
Erstellen Sie ein separates Thread -Objekt und rufen Sie es darauf auf, was der Verwendung
Control.BeginInvoke()
Das obige ist der detaillierte Inhalt vonInvoke () vs. beginInvoke (): Wann synchron und asynchrone Methodenaufrufe verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!