C # InvalidOperationException Y operación de subproceso [duplicado]
Esta pregunta ya tiene una respuesta aquí:
Operación de subprocesos no válida: control al que se accede desde un subproceso distinto del subproceso en el que se creó 20 respuestasEn mi formulario de Windows tengo un cuadro de texto y un botón, el cuadro de texto "tb_LogBox" es un cuadro de texto multilínea. Estoy intentando crear un trabajador de fondo que se supone que debe llamar a una función, es decir, "LogTimer.DnT ()" cuando compilo y ejecutarlo Visual Studio lanza InvalidOperationException.
El error real. Estoy obteniendo una operación de hebras cruzadas no válida: control 'tb_LogBox' al que se accede desde una secuencia diferente a la secuencia en la que se creó. El siguiente código de ejemplo ilustra lo que estoy tratando de hacer
private void button1_Click(object sender, EventArgs e)
{
try
{
var bw = new BackgroundWorker();
bw.DoWork += ExecuteOperations ;
bw.RunWorkerAsync();
}
catch (Exception ex)
{
tb_LogBox.AppendText(Environment.NewLine + " =@= " + ex.Message+" "+ex.Source);
}
}
private void ExecuteOperations(object sender, DoWorkEventArgs e)
{
var FuncCall = new LogTimer();
tb_LogBox.AppendText(Environment.NewLine + FuncCall.DnT()); // the line i am getting the error. on
}
public class LogTimer
{
public string DnT()
{
const string datePat = @"d/MM/yyyy";
var dateTime = DateTime.Now();
return dateTime.ToString(datePat);
}
}