Duplicar Possível:
Diferença entre BackgroundWorker e Thread?
Fui convidado a esta pergunta em uma entrevista. qual deve ser a resposta para isso?
Respostas:
0 para resposta № 1Nem os threads "worker" nem "background" são os principais / threads de interface do usuário.
A menos que você tenha mais detalhes (por exemplo, no contexto da Linguagem X ou Estrutura Y), não há diferença distinta entre eles. Mas, como eu os considero:
- UMA segmento de trabalho soa como pode pertencer a um grupo de trabalhadores. Nesse caso, ele pode ser reutilizado após a conclusão de uma tarefa (e só será interrompido quando o pool de trabalhadores for encerrado).
- UMA fio de fundo soa como ele foi invocado de forma assíncrona para realizar uma única tarefa. Possivelmente, para salvar o thread da interface do usuário do bloqueio.
1 para resposta № 2
A palavra "background" implica que ela executa menos tarefas críticas do que as threads que não são de segundo plano e não importa muito quando elas são concluídas. Em Java, isso pode significar o uso de um thread do daemon.
Tecnicamente são a mesma coisa e o diferente é subjetivo.
1 para resposta № 3
Tópicos de trabalhadores em segundo plano são mais usados quandovocê precisa executar uma operação longa em segundo plano e interagir com a interface do usuário do encadeamento. Backgroundworker tem alguns recursos que permitem interagir com a interface do usuário muito mais fácil.
0 para a resposta № 4
BackgroundWorker é uma classe System.ComponentModel que permite executar um método em um thread Threadpool separado. Joe Albahari tem um bom writeup nele.
Um segmento de trabalho é um termo genérico para segmentos gerados a partir de seu segmento principal que normalmente funcionam em paralelo à interface do usuário.