Hallo,
ich möchte den Worker mehrmals in unterschiedlichen Threads ausführen, die dann auf mehreren Kernen laufen sollen.
Dieser Worker soll mehrere Klassen (Objekte) haben, die er dann aufrufen.
zB. der Manager soll 2 Sekunden warten und dann ein Callback an den Worker Thread geben
Nun ist mein Problem das der Manager in kein Thread mehr läuft, bzw. der Worker Thread beendet wird.
Wie könnte ich das lösen, dass der Worker mit allen Objekten in einen Thread läuft bzw. das auf einer anderen Weise immer noch alles in seperaten Threads läuft?
An welcher Stelle wird überhaupt der Worker Thread beendet?
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55:
| namespace TestFrom {
public class WorkerThreadExample { static void Main() { for (int i = 0; i < 10; i++) { Worker workerObject = new Worker(); Thread workerThread = new Thread(workerObject.start); workerThread.Start(); } } }
public class Worker { Manager manager = null; public void start() { Console.WriteLine("Thread gestartet...."); manager = new Manager(this); run(); }
public void run() { Console.WriteLine("Thread läuft weiter...."); manager.startCallback(); }
public void callback() { Console.WriteLine("Callback von Manager gestartet...."); } }
public class Manager { Worker worker = null; public Manager(Worker _worker) { Console.WriteLine("Manager wird erstellt...."); worker = _worker; }
public void startCallback() { Console.WriteLine("Manager soll Worker Callback weiterführen..."); Thread.Sleep(2000); worker.callback(); } } } |
Vielen Dank,
CodeExce
Moderiert von Christian S.: Code- durch C#-Tags ersetzt