DEV Community

loading...

Update UI state from an another Thread in Windows Forms

1001binary
"Developer - Security Researcher" != None
・1 min read

An exception is thrown when trying to update control state from an another Thread.

Thread newThread = new Thread(new ThreadDelegate(() => {
   txtStatus.Text = "Started";
}));

newThread.Start();
Enter fullscreen mode Exit fullscreen mode

Solution

We use BeginInvoke to update UI state asynchronously.

Thread newThread = new Thread(new ThreadDelegate(() => {
   txtStatus.BeginInvoke(() =>
   {
       txtStatus.Text = "Started";
   });
}));

newThread.Start();
Enter fullscreen mode Exit fullscreen mode

Happy coding!

Discussion (0)