BackgroundWorker vs segmento de fundo

Eu tenho uma pergunta estilística sobre a escolha da implementação de thread em segundo plano que eu deveria usar em um aplicativo de formulário do windows. Atualmente tenho umBackgroundWorker em um formulário que tem um infinito(while(true)) loop. Neste loop eu usoWaitHandle.WaitAny para manter o fio cochilando até que algo de interesse aconteça. Um dos manipuladores de eventos que eu espero é um "StopThread"evento para que eu possa sair do loop. Este evento é sinalizado quando da minha substituídoForm.Dispose().

Eu li em algum lugar queBackgroundWorker é realmente destinado a operações com as quais você não deseja vincular a interface do usuário e ter um fim finito - como o download de um arquivo ou o processamento de uma sequência de itens. Neste caso, o "fim" é desconhecido e somente quando a janela é fechada. Portanto, seria mais apropriado para mim usar um thread de fundo em vez deBackgroundWorker para este fim?

questionAnswers(11)

yourAnswerToTheQuestion