Hi Leute hoffe mir kann da jemand weiterhelfen!! Ich möchte gerne einen Thread mehrmals aufrufen. Gibt es dafür irgend eine Möglichkeit? Mit der BackgroudWorker-Klasse funktioniert es aber mir wäre die Thread-Klasse lieber!!
Danke schonmal im voraus! mfg
Hallo Wolf86,
was verstehst du unter "einen Thread mehrmals aufrufen"?
Wenn du einfach vermeiden willst dass du jedes mal einen neuen Thread erstellen musst dann kannst du den ThreadPool verwenden.
Das ist ohnehin der empfohlene Weg da es schneller ist als einen neuen Thread zu erstellen.
Die Methode ThreadPool.QueueUserWorkItem ist deine Methode
Gruß
Michael
Danke für den Tipp der hört sich echt gut an. Kann es leider erst am Donnerstag testen aber trotzdem schon mal danke!!
Hallo Wolf86,
Mit der BackgroudWorker-Klasse funktioniert es
das stimmt nicht. Die DoWork-Methode eines BGW kann wie die ThreadStart-Methode eines Threads nur einmal gestartet werden.
Ich möchte gerne einen Thread mehrmals aufrufen.
Auch ich bin mir nicht sicher, was du meinst. Leider hast du die Nachfrage von michlG nicht beantwortet. Wenn du nacheinander mehrere Aufgaben in einem einmal gestarteten Thread ausführen willst, bietet sich die SyncQueue <T> - Eine praktische Job-Queue an.
herbivore
Hallo michlG und herbivore,
am besten ich erläutere mein Problem mal näher. Ich möchte bzw. versuche über eine TCP/IP Verbindung Daten an einen Roboter zu senden der diese dann anfährt und seine Possition bestätigt. Erst nach dem dieser die Possition erreicht hat wird der Thread wieder verlassen. Nun darf erst nach dem beenden bzw. verlassen des Threads ein neuer aufgerufen werden mit den nächsten Positionsdaten. Ansonsten fährt mein Roboter nicht dorthin wo er hin soll!
Hoffe mir kann da jemdand helfen!! Vielen Dank schon mal im voraus
mfg
Hallo Wolf86,
das erreichst du mit meinem Vorschlag.
ThreadPool.QueueUserWorkItem passt für deine Aufgabenstellung nicht, weil mehrere eingestellten Aufgaben potenziell parallel zueinandernausgeführt werden. Mit der SyncQueue kannst du die Aufgaben dagegen problemlos zwar in einem eigenen Thread, aber sequenziell zueinander abarbeiten. Also genau was du willst.
herbivore