Angenommen, ich zwei Threads wie folgt beginnen:Wie werden Threads in .NET mit der Eigenschaft Name aufgelistet?
// 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();
Gibt es eine Möglichkeit, die Fäden, indem sie ihre Eigenschaft Name aufzählen kann?
Ich möchte überprüft werden, ob ein Thread mit einem bestimmten Namen noch läuft.
Jeder von mir erstellte Thread arbeitet mit einer benannten Menge von Daten, der Name des Datensatzes wird als Name für den Thread verwendet, der mit den Daten arbeitet. Bevor ich einen Worker-Thread starte, möchte ich sehen, ob bereits ein früherer Thread für den gleichen Datensatz bereits läuft.
Die Gewinde, die ich bei der Verwendung von System.Diagnostics.GetCurrentProcess().Threads
bekomme, sind vom Typ ProcessThread
, nicht Thread
!
Nur eine kleine Anmerkung zu den Antworten unten hinzuzufügen, es in manchen Situationen sinnvoll sein kann Verwenden Sie WeakReference, um Speicherlecks zu verhindern. Threads können mit mehr Daten verbunden sein als die meisten realisieren, da Bibliotheken Dinge wie TLS/CallContext verwenden können. Wenn Sie nicht beabsichtigen, Ihre Threads nach dem Ende der WeakReference explizit aus der Sammlung zu entfernen, wird weiterhin die Garbage Collection zugelassen. – TheXenocide