Control 'progressBar1' acessado a partir de um segmento diferente do segmento em que foi criado na minha classe de negócios [duplicado]
Esta pergunta já tem uma resposta aqui:
Relatórios do progresso da tarefa assíncrona 1 respostaEu tenho um método em outra dll que obtém muitos dados (com 22k linhas), e preciso criar uma barra de progresso para o usuári
Se eu não chamar esse método de forma assíncrona, ele trava o aplicativo. Mas quando eu chamo de forma assíncrona, recebo o erroprogressBar1
Controle acessado de um thread que não seja o criado em
private void btnSend_Click(object sender, EventArgs e)
{
string filePath = tbPath.Text;
ETLBusiness etlBusiness = new ETLBusiness(filePath);
Task.Run(() => etlBusiness.LoadData(progressBar1));
}
Nesse caso,backgroundWorker1.RunWorkerAsync
não é assíncrono, está parando meu aplicativo em loop
private void btnSend_Click(object sender, EventArgs e)
{
string filePath = tbPath.Text;
ETLBusiness etlBusiness = new ETLBusiness(filePath);
Func<ProgressBar,int> func = etlBusiness.LoadData;
this.backgroundWorker1.RunWorkerAsync(func(progressBar1));
}
como consertou?