Laden...

Thread mehrmals aufrufen

Erstellt von Wolf86 vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.582 Views
W
Wolf86 Themenstarter:in
13 Beiträge seit 2010
vor 13 Jahren
Thread mehrmals aufrufen

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

3.430 Beiträge seit 2007
vor 13 Jahren

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

W
Wolf86 Themenstarter:in
13 Beiträge seit 2010
vor 13 Jahren

Danke für den Tipp der hört sich echt gut an. Kann es leider erst am Donnerstag testen aber trotzdem schon mal danke!!

49.485 Beiträge seit 2005
vor 13 Jahren

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

W
Wolf86 Themenstarter:in
13 Beiträge seit 2010
vor 13 Jahren

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

49.485 Beiträge seit 2005
vor 13 Jahren

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