Мне нужно попробовать, но разве вы не можете просто установить Имя потока в методе DoWork (), выполняемом BackgroundWorker?
ОБНОВЛЕНИЕ: я только что попробовал следующую строку кода в качестве первого утверждения моего метода BackgroundWorkers DoWork (), и он работает:
if (Thread.CurrentThread.Name == null)
Thread.CurrentThread.Name = "MyBackgroundWorkerThread";
ОБНОВЛЕНИЕ: Как правильно сказал Джонатан Аллен, имя потока пишется один раз, поэтому перед установкой имени я добавил пустую проверку. Попытка записи имени во второй раз приведет к исключению InvalidOperationException. Как писал Марк Гравелл, это может также усложнить отладку , как только фоновые потоки в пуле будут повторно использоваться для другой работы, поэтому называйте потоки только при необходимости.