Click here to Skip to main content
12,942,930 members (51,104 online)
Rate this:
Please Sign up or sign in to vote.
See more:
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 5:07am
Wes Aday 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
Top Experts
Last 24hrsThis month
OriginalGriff 4,633
CHill60 2,880
Maciej Los 2,268
Jochen Arndt 1,900
ppolymorphe 1,755

Advertise | Privacy | Mobile
Web01 | 2.8.170518.1 | Last Updated 18 Jul 2012
Copyright © CodeProject, 1999-2017
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