Control 'progresoBar1' accedido desde un hilo diferente al hilo en el que se creó en mi clase de negocios [duplicado]
Esta pregunta ya tiene una respuesta aquí:
Reporte de progreso de la tarea asincrónica 1 respuestaTengo un método en otro archivo dll que obtiene una gran cantidad de datos (cortando 22k filas), y necesito crear una barra de progreso para el usuario.
Si no llamo a este método de forma asincrónica, se bloquea la aplicación. Pero cuando lo llamo asincrónicamente me sale el errorprogressBar1
Control accedido desde un hilo distinto del hilo en el que se creó
private void btnSend_Click(object sender, EventArgs e)
{
string filePath = tbPath.Text;
ETLBusiness etlBusiness = new ETLBusiness(filePath);
Task.Run(() => etlBusiness.LoadData(progressBar1));
}
En ese caso,backgroundWorker1.RunWorkerAsync
no es asíncrono, está deteniendo mi aplicación en bucle
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));
}
¿Cómo lo arregló?