Como posso modificar os valores de um controle de interface dentro de uma task separada da thread principal ?
Exemplo:
private void button1_Click(object sender, EventArgs e) { Task task = new Task(Processar); task.Start(); } public void Processar() { try { int i = 0; this.progressBar1.Maximum = 5000000; for (i = 0; i < this.progressBar1.Maximum; i++) { this.progressBar1.Value = i; } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
Ao executar esse pequeno trecho de código recebo essa msg...
Cross-thread operation not valid: Control 'progressBar1' accessed from a thread other than the thread it was created on
Tentei usar delegate, mas não deu muito certo.