2011-10-28 21 views
5

Pracuję nad aplikacją C# i mam problemy z wątkami. Chciałbym wiedzieć, które wątki działają w mojej aplikacji.ProcessThread Name

używam ryk kodu:

foreach (ProcessThread s in Process.GetCurrentProcess().Threads) 
{ 
    try 
    { 
    int l_iTest = 0; 
    //(Thread) s.name 
    //l_liTest += s.Id + ";"; <-- name of the ProcessThread ? 
    } 
    catch 
    { 
    // Some stuff 
    }} 

Chodzi mi o to, chciałbym wiedzieć, które klasy lub assambly uruchomił mój wątek.

Czy ktoś ma pomysł?

+1

Nie można powrócić z ProcessThread do wątku. Przekaż argument, jeśli chcesz się dowiedzieć czegoś o kodzie, który uruchomił wątek. –

+0

@HansPassant: czy jesteś pewien, że nie ma sposobu, aby przejść od obiektu ProcessThread.Id do obiektu Thread? To rozwiązałoby jego problemy i kopalnie. –

Odpowiedz

1

Spójrz na my answer do this question i zobaczyć, czy odmiana może być w stanie pomóc (to Twój wątek będzie miał dostęp do globalnego repozytorium znanych wątków w aplikacji).

+0

Jak rozumiem, ten kod zakłada użycie klasy do uruchomienia wątku, którego imię chce się znać? To zdecydowanie nie jest rozwiązanie, np. Korzystam z obiektu działającego w tle 'RunWorkerAsync' i muszę znaleźć ten identyfikator wątku po nazwie. –