Gostaria de saber sobre o Background Worker, é uma boa prática ou está obsoleto? Ele trabalha com threads? Obrigado.
Gostaria de saber sobre o Background Worker, é uma boa prática ou está obsoleto? Ele trabalha com threads? Obrigado.
Olá, Rodrigo, vou deixar o MSDN falar por nós:
http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx#BKMK_Threads
The async-based approach to asynchronous programming is preferable to existing approaches in almost every case. In particular, this approach is better than BackgroundWorker for IO-bound operations because the code is simpler and you don't have to guard against race conditions. In combination with Task.Run, async programming is better than BackgroundWorker for CPU-bound operations because async programming separates the coordination details of running your code from the work that Task.Run transfers to the threadpool
Minha tradução:
A abordagem baseada em async para programação assíncrona é preferível às abordagens existentes em quase todos os casos. Essa abordagem é especificamente melhor que o BackgroundWorker para operações de Entrada/Saída, porque o código é mais simples e você não precisa proteger o código contra condições de corrida. Junto com Task.Run, a programação async é melhor que BackgroundWorker para operações ligadas a CPU porque a programação async separa os detalhes da coordenação da execução do seu código e o trabalho que o
Task.Run
transfere para o pool de threads.
Esqueci do MSDN \o/, e gratidão pela resposta !
Eu que agradeço a sua participação, Rodrigo! Um abraço!