Entwickler-Ecke

Basistechnologien - Thread von anderer Methode aus stoppen?


Poscaenium - Mi 13.05.15 19:43
Titel: Thread von anderer Methode aus stoppen?
Hallo,

ich habe einen Thread erstellt:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
private void startSomethingWithThread()
{
   Thread myThread = new Thread (mDoSomeWork);
   myThread.Start();
}


private void mDoSomeWork ()
{
    // Something todo
}

So - meine Frage: Wie stoppe ich den Thread nun aus einer anderen Methode heraus (z.B. auch über einen Button)? In der Methode startStomethingWithThread geht es ja leicht...

Danke schon vorab für Antworten!

Moderiert von user profile iconTh69: C#-Tags hinzugefügt


Ralf Jansen - Mi 13.05.15 20:08

Nimm eine boolsche Variable auf der du im Thread regelmäßig prüfst. Z.B du nennst die Variable isAborted und setzt die eben im Falle des Falles von false auf true. Im Thread hast du dann die Chance sauber aufzuräumen und die Threadmethode auslaufen zu lassen.


Th69 - Mi 13.05.15 20:53

Hallo und :welcome:

du kannst dir auch mal Abbruch in verwalteten Threads [https://msdn.microsoft.com/de-de/library/dd997364%28v=vs.110%29.aspx] durchlesen (Stichwort: CancellationToken).

Ab .NET 4 würde ich dir auch dazu raten Tasks anstatt Threads zu benutzen.


Poscaenium - Mi 13.05.15 21:04

Hey, super für die raschen Antworten!

Ich werde das bei Gelegenheit gleich mal ausprobieren - wobei ich mir zuvor durchlesen werde, wie man verwaltete Threads richtig abbricht.

Danke :!: