Załóżmy zacznę dwa wątki tak:Jak wyliczyć wątki w .NET za pomocą właściwości Nazwa?
// Start first thread
Thread loaderThread1 = new Thread(loader.Load);
loaderThread1.Name = "Rope";
loaderThread1.Start();
// Start second thread
Thread loaderThread2 = new Thread(loader.Load);
loaderThread2.Name = "String";
loaderThread2.Start();
Czy jest jakiś sposób mogę wyliczyć wątki za pomocą ich własności na imię?
Chcę być w ukryciu, aby sprawdzić, czy wątek o określonej nazwie nadal działa.
Każdy wątek, który utworzę działa z nazwanym zbiorem danych, nazwa zestawu danych jest używana jako nazwa wątku pracującego z danymi. Przed uruchomieniem wątku roboczego chcę sprawdzić, czy poprzedni wątek dla tego samego zestawu danych już działa.
Gwinty, które otrzymuję podczas korzystania z System.Diagnostics.GetCurrentProcess().Threads
, są typu ProcessThread
, a nie Thread
!
Wystarczy dodać małą notatkę do poniższych odpowiedzi, może być mądry w niektórych sytuacjach użyj WeakReference, aby zapobiec wyciekom pamięci. Wątki mogą mieć więcej powiązanych z nimi danych, niż większość z nich wie, ponieważ biblioteki mogą używać takich rzeczy jak TLS/CallContext. Jeśli nie zamierzasz jawnie usuwać wątków z kolekcji po jej zakończeniu, WeakReference nadal będzie zezwalać na odśmiecanie. – TheXenocide