Der beste Weg, um eine einfache Funktion für einen neuen Thread auszuführen?
Ich habe zwei Funktionen, die ich will laufen in verschiedenen threads (weil Sie Datenbank-Zeug, und Sie sind nicht sofort gebraucht).
Funktionen sind:
getTenantReciept_UnitTableAdapter1.Fill(rentalEaseDataSet1.GetTenantReciept_Unit);
getTenantReciept_TenantNameTableAdapter1.Fill(rentalEaseDataSet1.GetTenantReciept_TenantName);
In javascript, ich weiß, ich kann erstellen, erstellen Sie eine anonyme Funktion und rufen Sie es in einem neuen thread ganz leicht mit etwas wie dieses:
setTimeout(new function(){doSomethingImportantInBackground();}, 500);
Gibt es so etwas in C#?
InformationsquelleAutor der Frage Malfist | 2009-10-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Frage ist nicht ganz klar, fürchte ich. Sie können einfach einen neuen thread starten mit dem code, das mit anonymen Methoden in C# 2, und lambda-Ausdrücke in C# 3:
Anonyme Methode:
Lambda-Ausdruck:
Können Sie die selbe syntax für
Control.Invoke
aber es ist etwas schwieriger, denn das kann dauern alle delegieren - Sie müssen also sagen, der compiler, der Typ, den Sie verwenden, anstatt bauen auf eine implizite Konvertierung. Es ist wahrscheinlich am einfachsten zu schreiben:oder
Als Seite beachten, sind Ihre Namen wirklich so lange? Können Sie kürzen, um mehr lesbaren code?
InformationsquelleAutor der Antwort Jon Skeet
Ähnlich zu dem, was ist gesagt worden - ich finde die Aufgaben etwas einfacher (unterstützt von .net 4 und kann verwendet werden, wie folgt .net 4.5):
InformationsquelleAutor der Antwort JSideris
Starten von threads ist relativ teuer.
Könnten Sie besser mit einem thread aus dem thread pool:
InformationsquelleAutor der Antwort oefe
Könnte man eine anonyme Methode:
InformationsquelleAutor der Antwort Daniel Rodriguez