Click here to Skip to main content
11,479,486 members (55,426 online)
Rate this: bad
Please Sign up or sign in to vote.
See more: C# WinForm
I Am using workder thread in my application. I want that when my application raise any exception it should be populated in the listbox and flow of exectution shouldn't be breaked out. But it showing this exception.

Cross-thread operation not valid: Control 'txtBxException' accessed from a thread other than the thread it was created on.

Plz guide
Posted 18-Jul-12 6:07am
Wes Aday at 18-Jul-12 11:17am
Use Invoke or use a delegate to access the control

1 solution

Rate this: bad
Please Sign up or sign in to vote.

Solution 1

This is common error when one starts with WinForms programming.
You need to do something like this:
if (txtBxException.InvokeRequired)
        txtBxException.Invoke(new MethodInvoker(
                txtBxException.Text = "Describe error here";
        txtBxException.Text = "Describe error here";
The problem there is limitation in WinForms that controls can be updated only from main (GUI) thread, on which they were originally created.
So, when you're working on background thread you need to deffer updating control to main thread using .Invoke() or .BeginInvoke() methods.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 OriginalGriff 240
1 Sergey Alexandrovich Kryukov 215
2 F-ES Sitecore 185
3 Richard MacCutchan 130
4 Frankie-C 104
0 Sergey Alexandrovich Kryukov 7,890
1 OriginalGriff 7,441
2 Sascha Lefèvre 3,064
3 Maciej Los 2,491
4 Richard Deeming 2,335

Advertise | Privacy | Mobile
Web01 | 2.8.150520.1 | Last Updated 18 Jul 2012
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100