Avatar ·

Como atualizar a GUI a partir de outra thread em C# WinForms?

Olá, colegas! Sou um desenvolvedor C# iniciante e me deparei com um problema que está me deixando louco. Tenho um aplicativo Windows Forms que executa uma operação longa (por exemplo, processar uma grande lista de arquivos ou baixar dados da internet). Para que a interface não congele, executo essa operação em uma thread separada usando `Task.Run` ou `Thread`.\n\nAqui está um exemplo simplificado do meu código:\n\n```csharp\nprivate void buttonStart_Click(object sender, EventArgs e)\n{\n Task.Run(() => LongRunningOperation());\n}\n\nprivate void LongRunningOperation()\n{\n for (int i = 0; i < 100; i++)\n {\n // Algum trabalho\n Thread.Sleep(100);\n // Tentando atualizar a ProgressBar\n progressBar1.Value = i;\n // Ou a Label\n labelStatus.Text = $"Processado