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 ??
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.
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.
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.
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:> 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.
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
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).aspxhttp://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?
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.
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.
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.