Wie starte ich einen Thread mit Lambda-Ausdruck c #

7

Ich habe diese Klasse:

%Vor%

Ich möchte die Funktion Statistics mit verschiedenen Theads starten und habe so etwas wie:

%Vor%

aber der Compiler Fehler sagt "Der nicht-generische Typ 'System.Threading.Thread' kann nicht mit Typ-Argumenten"

verwendet werden

Ich habe nicht meine ganze Klasse geschrieben und möchte nur wissen, dass es heiß ist, den Thread zu starten

Danke

    
user979033 06.03.2012, 07:21
quelle

1 Antwort

31

Sie müssen einen Schritt zurückgehen und den Compilerfehler lesen. Thread ist kein generischer Typ. Es ist wirklich nicht all klar, was Sie hier versuchen, vor allem, weil Sie nicht eine parameterlose getStatistics() -Methode (die als% co_de bezeichnet werden soll) gezeigt haben % folgt den .NET-Namenskonventionen) und die parametrisierte GetStatistics() -Methode, die Sie haben haben keinen Rückgabetyp.

Das Starten eines Threads mit einem Lambda-Ausdruck ist der einfache Teil:

%Vor%

Es ist jedoch nicht klar, wie sich das auf Ihren Beispielcode auswirkt.

Wenn Sie die TPL in .NET 4 verwenden, können Sie (und wahrscheinlich sollten getStatistics() oder Task verwenden):

%Vor%

oder

%Vor%

Es ist möglich, dass Sie wirklich wollen:

%Vor%

Beachten Sie, dass hier der -Konstruktor innerhalb der neuen Aufgabe aufgerufen wird - was wichtig ist, da es so aussieht, als würde das wahrscheinlich die ganze Arbeit machen. (Das ist normalerweise eine schlechte Idee, aber das ist eine andere Sache.)

Sie sollten sich .NET-Namenskonventionen im Allgemeinen ansehen, btw ...

    
Jon Skeet 06.03.2012, 07:26
quelle

Tags und Links