Laden...

Process Explorer - Threads verschwinden nicht?

Erstellt von Afrokalypse vor 18 Jahren Letzter Beitrag vor 18 Jahren 2.462 Views
A
Afrokalypse Themenstarter:in
452 Beiträge seit 2005
vor 18 Jahren
Process Explorer - Threads verschwinden nicht?

Hi leute 🙂

ich habe hier ien Programm das nennt sich Process Explorer - Sysinternals.
Damit kann ich verfolgen, was für registrykeys, threads, etc.. für meine tasks benutzt werden.

jetzt habe ich mir eine anwendung geschrieben, mit der ich Textdateien einlesen und vor allem das Einlesen abbrechen kann. das ganze läuft über Threads.
jetzt musste ich mit erstaunen feststellen, dass mir der Process Explorer anzeigt, dass jedesmal wenn ich eine Datei einlese oder das einlesen abbreche, ein neuer Thread entsteht aber der alte nicht verschwindet. im debugmodus von vs.net steht aber immer "Der Thread 'bla bla' (0xirgendwas) hat mit Code 0 (0x0) geendet."

dann müsste der Thread doch beendet und somit gekillt sein oder nicht? oder muss ich jeden thread von hand killen?

*edit*
die threads verschwinden doch aber das dauert recht lange ( ca eine minute ) bis mal ein thread komplett gekillt ist.
wie kann ich das ganze beschleunigen? hilft da nur thread.abort()?

Signatur:
Die Signatur wird unter Ihren Beiträgen dargestellt.

😁 😮 ?( 8) 😭 8o :] 🙁 =) X( 🙂 😜 😉 :rolleyes: 👶 :evil: 👅
Smilies find ich doof =]

S
8.746 Beiträge seit 2005
vor 18 Jahren

Dafür dürfte der GC verantwortlich sein. Um das genauer zu untersuchen kannst du WinDbg einsetzen, in Kombination mit der SOS.dll-Extension (!threads).

A
Afrokalypse Themenstarter:in
452 Beiträge seit 2005
vor 18 Jahren

ich hab einfach mal
thread.Abort();
GC.Collect();
gemacht aber da tut sich auch nix.
also kann ich das nicht weiter beeinflussen?

Signatur:
Die Signatur wird unter Ihren Beiträgen dargestellt.

😁 😮 ?( 8) 😭 8o :] 🙁 =) X( 🙂 😜 😉 :rolleyes: 👶 :evil: 👅
Smilies find ich doof =]

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Afrokalypse,

da der GC von alleine läuft, wenn es nötig wird, würde ich mir an deiner Stelle keine Gedanken machen, solange die Thread überhaupt irgendwann verschwinden.

Möglicherweise dauert es auch einfach nur lange, bis der PE mitbekommt, dass ein Thread beendet wurde, obwohl der Thread schon lange weg ist.

herbivore

S
8.746 Beiträge seit 2005
vor 18 Jahren

Zudem:

Note An operating-system ThreadId has no fixed relationship to a managed thread, because an unmanaged host can control the relationship between managed and unmanaged threads. Specifically, a sophisticated host can use the CLR Hosting API to schedule many managed threads against the same operating system thread, or to move a managed thread between different operating system threads.