Ответ 1
Не знаю, назначены ли потоки ThreadPool значимым Name, но вы всегда должны иметь возможность использовать ManagedThreadId CurrentThread для целей отладки/ведения журнала.
Я использую ThreadPool
для выполнения набора задач в службе Windows. Служба генерирует новые потоки каждые 10 секунд. Я хотел бы записать имя потока, который взял конкретную задачу из базы данных. Можно ли получить имя потока?
Не знаю, назначены ли потоки ThreadPool значимым Name, но вы всегда должны иметь возможность использовать ManagedThreadId CurrentThread для целей отладки/ведения журнала.
Самый простой способ для этого - из контекста каждого потока, поскольку у вас есть доступное свойство CurrentThread и все свойства, которые приписываются потоку:
System.Threading.Thread.CurrentThread.Name
Как и в предыдущем посте, упоминалось, насколько это значимо, потому что в пуле потоков я не уверен.
Не пытайтесь изменять состояние потока при использовании потоков из пула. Эти потоки не принадлежат вам, они принадлежат среде выполнения. Вы не хотите менять вещи, которыми не владеете.