2017-05-16 17 views
0

Ich möchte die Informationen in der Datenbank asynchron aktualisieren, was ist der Unterschied zwischen der folgenden Implementierung, beide sind asynchron?Update Informationen in der Datenbank asynchron

Welcher ist besser zu verwenden?

new System.Threading.Thread(() => { 
userModel.Update(); //update the database 
}).Start(); 

internal async void ProcessMessageReceived(UserModel userModel) { 
userModel.Update(); 
} 
+1

zweite ist nicht asynchron, thread funktioniert wirklich und async ist Arbeit zu tun, normalerweise E/A-Vorgang – brykneval

+0

Was ist der Umfang des ersten thread, wenn es zerstört wird, oder wenn es fertig sein wird? – bilal

+0

Wenn es im Hintergrund läuft, läuft es bis zum Hauptthread, während es für den Vordergrund läuft, bis es ausgeführt werden muss oder bis zur Fertigstellung. – brykneval

Antwort

1

Ihre erste Implementierung wird mit einem neuen Thread, während der zweite die TPL zu verwenden scheint. Wir müssen die Implementierung der Update-Methode sehen, um völlig sicher zu sein, ich schätze, es gibt eine Aufgabe zurück?

Die Verwendung der TPL ist normalerweise effizienter als die Erstellung eigener Threads.

TPL-Tasks verwenden den Thread-Pool und ermöglichen die Wiederverwendbarkeit von Tasks, die zusätzliche Leistungsvorteile bieten.

Verwandte Themen