C # InvalidOperationException E operação de thread cruzado [duplicado]
Esta questão já tem uma resposta aqui:
Operação de encadeamento cruzado inválida: controle acessado de um encadeamento diferente do encadeamento em que foi criado 20 respostasNo meu formulário windows eu tenho uma caixa de texto e um botão, a caixa de texto "tb_LogBox" é a caixa de texto de múltiplas linhas Eu estou tentando criar um trabalhador de fundo que é suposto chamar uma função ou seja, "LogTimer.DnT ()" quando eu compilar é e executá-lo Visual studio lança InvalidOperationException.
O erro real estou recebendo operação Cross-thread não é válida: Controle 'tb_LogBox' acessado de um segmento diferente do segmento que foi criado no. O código de exemplo a seguir ilustra o que estou tentando fazer
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);
}
}