/ / Diferença entre thread de trabalho e segmento backgroundworker? [duplicado] - c #, java, .net, multithreading

Diferença entre thread de trabalho e segmento backgroundworker? [duplicado] - c #, java, .net, multithreading

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 № 1

Nem 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.