Melhor maneira de relatar o progresso do encadeamento

Eu tenho um programa que usa threads para executar processos demorados sequencialmente. Eu quero poder monitorar o progresso de cada thread semelhante à maneira como oBackgroundWorker.ReportProgress/ProgressChanged modelo faz. Não posso usarThreadPool ouBackgroundWorker devido a outras restrições em que estou. Qual é a melhor maneira de permitir / expor essa funcionalidade. Sobrecarregar oThread classe e adicionar uma propriedade / evento? Outra solução mais elegante?

questionAnswers(4)

yourAnswerToTheQuestion