PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Visual Basic.net und Multithreading


Geldmann3
2013-09-21, 23:18:04
Hallo, sobald man auf einen Button klickt, starte ich einen Thread, der Hintergrundaufgaben erledigt. In diesem Fall, zählt er einfach nur.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Thread As New Threading.Thread(AddressOf Zählen)
Thread.Start()


Zählen sieht so aus:
Shared Sub Zählen()

For Zahl = 1 To 100000000
Next
End Sub

Nun würde ich den Thread in dem Moment gerne beenden, sobald die For Schleife vollständig durchlaufen ist. Wie mache ich das?

Gast
2013-09-22, 09:27:17
Was willst du denn da groß beenden, wenn er fertig ist? Er macht ein return und Ende.

Geldmann3
2013-09-22, 12:54:11
Und der Thread ist dann auch weg? Oder ist er dann noch da, kostet Speicher, macht aber einfach nichts mehr?

RattuS
2013-09-23, 04:01:56
Und der Thread ist dann auch weg? Oder ist er dann noch da, kostet Speicher, macht aber einfach nichts mehr?
Der Thread ist weg, sobald die Prozedur beendet wird (egal ob durch Anweisung oder Rückgabe). Du solltest lediglich darauf achten, dass Ressourcen, die du innerhalb des Threads verwendest, ggf. wieder freiräumst, sonst bleiben die erstmal unbeachtet von der GC und belegen unnötig Speicher.

Geldmann3
2013-09-23, 06:36:39
Danke, habe ich jetzt auch im Taskmanager feststellen können.