Gast
#2596014
Ich habe folgendes Problem unter http://bytes.com/topic/c-sharp/answers/935867-stop-run-thread-some-place#post3709890. Bitte hier und in Deutsch antworten.
|
Anzeige
|
Threads beenden und starten von.
Gast
#2596014
Ich habe folgendes Problem unter http://bytes.com/topic/c-sharp/answers/935867-stop-run-thread-some-place#post3709890. Bitte hier und in Deutsch antworten. naja (ich weiß nicht was für programmiesprache das ist (laut link c#), aber ich glaube das passt:) >. How to stop .... the thread gar nicht, der muss sich SELBER beenden.. Abort(): >Raises a ThreadAbortException in the thread on which it is invoked, to >begin the process of terminating the thread. Calling this method usually >terminates the thread. zwischen deinem Abort und start ist ja NIX.. wie soll der thread da irgendwas machen können ??
Gast
#2596060
Du hast das Problem nicht erkannt.
Gast
#2596065
stre läßt sich nicht starten, weil wegen einem ungültigen Threadzustand. Vemutlich weil stre nicht im Hauptthread neugestartet wird, von dem es zuerst gestartet wurde.
Gast
#2596067
Ein bisschen mehr Arroganz bitte! Fidelis Sobotta schrieb: > Du hast das Problem nicht erkannt. "Das glaube ich nicht, Tim!" Solange dein Thread das Abort nicht angenommen hat, läuft er noch und ist im Zustand AbortRequested. Da du aber sofort danach versuchst, ihn neu zu starten, hat er ja noch gar keine Zeit gehabt, den Abort-Request anzunehmen. Nur zum Verständnis: Threads bricht man niemals einfach so ab. Man läßt sie sich selbst beenden.
Gast
#2596466
stre läßt sich nicht starten, weil wegen einem ungültigen Threadzustand. Vemutlich weil stre nicht im Hauptthread neugestartet wird, von dem es zuerst gestartet wurde. Normalerweise sollte sich ein Thread selbst beenden. Mach doch ne globale Variable als Kill-Flag, in das das Hauptprogramm schreiben darf, und welches im Thread gelesen wird. Sobald der Thread kill=true erkennt, beendet er sich selbst.
Gast
#2596506
Kan asta schrieb: > Normalerweise sollte sich ein Thread selbst beenden. > > Mach doch ne globale Variable als Kill-Flag, in das > das Hauptprogramm schreiben darf, und welches im > Thread gelesen wird. Sobald der Thread kill=true > erkennt, beendet er sich selbst. Es geht nicht ums Beenden sondern ums Starten, das wegen einem ungültigen Threadzustand nicht funktioniert. Zugreifen, also Beenden funktioniert, aber neu starten nicht. Fidelis Sobotta schrieb: > Zugreifen, also Beenden > funktioniert, aber neu starten nicht. normalerweise kann man Threads nicht neustarten. versuch mal, einen neuen Thread zu starten, anstatt einen alten Thread neuzustarten.
Gast
#2597302
Fidelis Sobotta schrieb: > Ich habe folgendes Problem unter > http://bytes.com/topic/c-sharp/answers/935867-stop-run-thread-some-place#post3709890. > > Bitte hier und in Deutsch antworten. Was die Doku dazu sagt: "Once the thread terminates, it cannot be restarted with another call to Start." Oder in Deutsch: wenn ein Thread beendet ist kann er nicht mit einem Aufruf von Start() erneut gestartet werden. Hmm, liest eigentlich niemand mehr die Doku von irgendwelchem Zeug? Tsk, tsk, tsk.
Gast
#2597310
Jasch schrieb: > Oder in Deutsch: wenn ein Thread beendet ist kann er nicht mit einem > Aufruf von Start() erneut gestartet werden. Ich übergebe einem Thread neue Parameter. Wie soll ich das ohne Neustart tun? Fidelis Sobotta schrieb: > Jasch schrieb: >> Oder in Deutsch: wenn ein Thread beendet ist kann er nicht mit einem >> Aufruf von Start() erneut gestartet werden. > > Ich übergebe einem Thread neue Parameter. Wie soll ich das ohne Neustart > tun? Wieso muss sich der Thread beenden bevor er neue Parameter bekommt? Du hast 2 Möglichkeiten: 1.) Thread nicht beenden, sondern nur neue Daten füttern. 2.) Thread beenden und einen neuen Thread starten gruß cyblord
Gast
#2597322
cyblord ---- schrieb: > Wieso muss sich der Thread beenden bevor er neue Parameter bekommt? Stelle keine Fragen, auf die du keine Antwort willst. > 2.) Thread beenden und einen neuen Thread starten Genau das geht nicht. Fidelis Sobotta schrieb: > cyblord ---- schrieb: >> Wieso muss sich der Thread beenden bevor er neue Parameter bekommt? > Stelle keine Fragen, auf die du keine Antwort willst. Sollte besser heißen: Stelle keine Fragen, wenn eh schon klar ist, daß dein Gegenüber sie nicht versteht. Man kann mit Threads auch recht einfach kommunizieren, während sie laufen und nicht nur durch Übergabe von Parametern beim Start. Das ist ja gerade das Tolle an Threads. >> 2.) Thread beenden und einen neuen Thread starten > Genau das geht nicht. Wie kommst du darauf? Du hast bisher nur probiert, den alten Thread nochmal zu starten. Hier mal zwei Links, die ich auf die Schnelle dazu gefunden hab: http://msdn.microsoft.com/de-de/library/yy12yx1f(v=vs.80).aspx http://msdn.microsoft.com/de-de/library/7a2f3ay4(v=vs.80).aspx Aber wieso fragst du hier überhaupt, wenn du eh keinerlei Interesse an den Antworten hast? Weshlb den Thread nicht durchlaufen lassen? Was soll ein abbruch denn bringen? Die WindowsAPI z.b. bietet die Funktion TerminateThread für Killen von Thread von Außerhalb des Threads. Hat da C-Sharp nichts ?
Gast
#2598051
Dennis Heynlein schrieb: > Hat da C-Sharp nichts ? M.W. hat C# hat einen Garbage Collector dafür.
Gast
#2598590
Rolf Magnus schrieb: > Fidelis Sobotta schrieb: >> cyblord ---- schrieb: >>> Wieso muss sich der Thread beenden bevor er neue Parameter bekommt? >> Stelle keine Fragen, auf die du keine Antwort willst. > > Sollte besser heißen: Es heißt genau das, was ich schreibe. Fidelis Sobotta schrieb: > Rolf Magnus schrieb: >> Fidelis Sobotta schrieb: >>> cyblord ---- schrieb: >>>> Wieso muss sich der Thread beenden bevor er neue Parameter bekommt? >>> Stelle keine Fragen, auf die du keine Antwort willst. >> >> Sollte besser heißen: > Es heißt genau das, was ich schreibe. Genau! Und bitte hier und in Deutsch antworten! Ah, also hat es, wie ich schon vermutet habe, keinen Sinn, dir weiter zu antworten, da du an Antworten eh nicht interessiert bist und keine Lust hast, das eigentliche Problem wirklich zu verstehen. Das sieht man ja auch schon daran, daß du bisher sämtliche Vorschläge einfach ignoriert hast. Wenn du eh alles besser kannst als andere und der einzige bist, der Threads wirklich verstanden hat, dann hast du doch dein Problem sicher schon lange gelöst und brauchst gar keine Hilfe.
Gast
#2599327
Fidelis Sobotta schrieb: > Ich übergebe einem Thread neue Parameter. Wie soll ich das ohne Neustart > tun? Wahrscheinlich ist dein Ansatz falsch! Wenn Du uns verrätst was dieser "Thread" genau machen soll, dann kann man dir weiter helfen bzw. einen guten Ansatz für eine Lösung vermitteln.
Gast
#2599342
Fidelis Sobotta schrieb: >> 2.) Thread beenden und einen neuen Thread starten > Genau das geht nicht. Das macht aber dein Code nicht und wenn er es machen würde, dann gibt es elegantere Lösungen.
|
Anzeige
|