Frage zu BackgroundWorker

10/06/2009 - 17:09 von Fritz Hilgemann | Report spam
Hallo,

ich habe mal ein Beispiel zum BackgroundWorker probiert, und zwar aus
http://dotnetperls.com/backgroundwo...troduction
Zwar funktioniert das Beispiel, aber mir ist aufgefallen, daß die Anzahl der
laufenden Threads selbst nach Beendigung des Threads nicht zurückgeht (sieht
man im TskMgr). Die Alternative, einen "Thread" mit einer Start function zu
erzeugen, wird aus meiner Sicht korrekt beendet, d.h. die Anzahl der Threads
wird im TskMgr um 1 reduziert. Frage also: Was muß ich machen, damit die
Threadzahl wieder reduziert wird?

Weiterhin ist mir aufgefallen, daß der Start des BackgroundWorkers
wesentlich langsamer vonstatten zu gehen scheint. Ist das mehr oder weniger
"normal" so, und muß man damit leben?

Gruß,
Fritz
 

Lesen sie die antworten

#1 Andreas Tögel
12/06/2009 - 16:31 | Warnen spam
Hi,

Ich bin zwar kein Experte auf dem Gebiet, aber so weit ich weiss benutzt der
BackgroundWorker den ThreadPool. Deswegen ist das Verhalten durchaus normal.

Zu deinen beiden Fragen:
Was muß ich machen, damit die Threadzahl wieder reduziert wird?


Warten. Wenn der Thread eine Zeit lang Idle ist wird er automatisch zerstört.

Weiterhin ist mir aufgefallen, daß der Start des BackgroundWorkers wesentlich langsamer vonstatten zu gehen scheint. Ist das mehr oder weniger "normal" so, und muß man damit leben?


Das ist normal, allerdigns nur wenn kein unbenutzer Thread zur Verfügung
steht. Wenn du den BackgroundWorker anhàlst und neu startest sollte er beim
zweiten mal wesentlich schneller starten.

mfg, Andreas

Ähnliche fragen