Hallo zusammen
Ich bin's wieder und traue mich mit meinem nächsten Problem.
Ich möchte ein TPL-Programm schreiben mit Übergabe eines Parameters, d.h. der Task soll Daten mitbekommen (zieht nur die Wurzel einer übergebenen Zahl).
Lt. Konstruktor funktioniert das in seiner Basisform so:
		                     
             C#-Quelltext
                        C#-Quelltext                    
           	 										| 1:
 | public Task(Action<Object> action,Object state)					 | 
		
	  
Jetzt versuche ich, 
genau diesen Konstruktor hinzubekommen, aber leider ohne Erfolg.
		                     
             C#-Quelltext
                        C#-Quelltext                    
           	 										| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 
 |     class Program{
 
 static void Main(string[] args)
 {
 Action<double> Sub;
 
 double Zahl = 144;
 Sub = SubTask;
 Task TaskObj = new Task(Sub, Zahl);
 
 TaskObj.Start();
 TaskObj.Wait();
 }
 
 static void SubTask(double Zahl)
 {
 Console.Write("\n Start Sub-Task\n");
 Console.Write("\n\t Zahl= {0} Wurzel= {1}", Zahl, Math.Sqrt((double)Zahl));
 Console.Write("\n Ende Sub-Task\n");
 Console.Write("\n\n");
 }
 }
 | 
		
	  
2 Fehlermeldungen bei zeile 10:
1. Argument 1: Konvertierung von System.Action<double> in System.Action nicht möglich.
2. Argument 2: Konvertierung von double in System.Threading.CancellationToken nicht möglich.
Hinweis:
Mit Anwendung eines Lamba-Ausdruckes oder Task.Run funktioniert alles. Aber ich wollte das Beispiel auch wie oben gezeigt hinbekommen, also mit explizit definiertem Action-Objekt. Geht das überhaupt?
Gruss Luccas
Moderiert von  Th69: B- durch C#-Tags ersetzt
Moderiert von
Th69: B- durch C#-Tags ersetzt
Moderiert von  Th69: Code- durch C#-Tags ersetzt
Th69: Code- durch C#-Tags ersetzt