Ich verwende ThreadPool
, um eine Reihe von Aufgaben in einem Windows-Dienst auszuführen. Der Dienst erzeugt alle 10 Sekunden neue Threads. Ich möchte den Namen des Threads aufzeichnen, der eine bestimmte Aufgabe aus der Datenbank aufgenommen hat. Ist es möglich, den Namen des Threads zu erhalten?Name des Threads im ThreadPool - C#
Antwort
Ich weiß nicht, ob ThreadPool Threads eine sinnvolle Name zugeordnet sind, aber Sie sollten immer in der Lage sein, die ManagedThreadId der CurrentThread für Debugging/Logging-Zwecke zu verwenden.
Danke. Gibt es einen Wert beim Speichern der ManagedThreadId? Wie würde ich es realistisch beim Debuggen verwenden? – Nick
Nun, es ist ein 'int', das immer dann gleich ist, wenn zwei UserWorkItems auf demselben ThreadPool-Thread ausgeführt werden. Der Wert hat nur während eines Programmlaufs Bedeutung. Ich bezweifle, dass es einen Wert gibt, ThreadPool-Thread-Namen oder IDs zu protokollieren. Es ist ein Implementierungsdetail, in dem UserWorkItem auf welchem Thread ausgeführt wird. Du solltest dich nicht wirklich darum kümmern. UserWorkItem sollte sich nicht gegenseitig beeinflussen, wenn sie auf demselben Thread ausgeführt werden. – dtb
Der einfachste Weg, dies aus dem Innern des Kontext jeden Threads sein wird, wie Sie die Current Eigenschaft vorhanden und alle Eigenschaften haben, die zu einem Faden zugeschrieben werden:
System.Threading.Thread.CurrentThread.Name
Wie ein anderen Plakat ist zwar erwähnt , wie sinnvoll das in einem Thread-Pool sein wird, bin ich mir nicht sicher.
Versuchen Sie nicht, den Thread-Status zu ändern, wenn Sie Threads aus dem Pool verwenden. Diese Threads gehören nicht dir, sie gehören zur Laufzeit. Du willst nichts ändern, was du nicht besitzt.
- 1. Ausnahmen auf Threadpool Threads
- 2. Threadpool im IIS-Kontext
- 3. Azure Deployment fehlgeschlagen - nicht genügend freies Threads im Threadpool
- 4. C# - ThreadPool QueueUserWorkItem Verwenden?
- 5. Beeinträchtigt die Anzahl der ausgelasteten Worker-Threads im CLR ThreadPool die Leistung von E/A-Threads?
- 6. Verwenden von Delegaten in C# .Net, was passiert, wenn mir die Threads im .NET Threadpool ausgehen?
- 7. C# Threadpool Synchronisation Anfrage
- 8. Java: Zeitüberschreitung für Threads in einem ThreadPool festlegen
- 9. Threadpool-Konfiguration im Camel Context
- 10. C# ThreadPool Anwendung Leistung im Laufe der Zeit
- 11. Angemessene Anzahl von Threads für Threadpool, der Webdienstanforderungen ausführt
- 12. C++ threadpool mit shared Nur-Lese-Speicher
- 13. C# Threadpool Erstellen von UI-Element
- 14. ThreadPool mit mehreren Threads Erstellen von FTP-Anfragen Timeout
- 15. C# Execute Methode (mit Parametern) mit ThreadPool
- 16. Thread vs ThreadPool
- 17. C# Beitritt Threads im Hintergrund Worker DoWork()
- 18. Name des Unternehmens im App Store
- 19. Threadpool-/Warteschlangengrößenbeschränkung ungelöst
- 20. Thread/threadpool oder backgroundworker
- 21. Threadpool-Implementierung: condition_variables vs. yield()
- 22. ThreadPool und Threading.Timer?
- 23. Generic ThreadPool in. NET
- 24. C++ reversierender Indexer und Name des Arrays
- 25. C# WCF - Suchen Name des Endpunkts, der
- 26. Synchronisieren von Threadpool
- 27. boost :: threadpool :: pool vs.boost :: thread_group
- 28. C# -Threads - Nachrichten zwischen Threads posten
- 29. Deadlock in ThreadPool
- 30. C# - Daten vom ThreadPool-Thread an den Hauptthread zurückgeben
Was meinen Sie mit dem "Namen" des Threads? –
@Anon - Ich glaube Threads sind Namen zugewiesen – Nick