Possible Duplicate:
Cross-thread operation not valid: Control accessed from a thread other than the thread it was created on
Okay, I know why this is giving me this error:
Cross-thread operation not valid:
Control ‘Form1’ accessed from a thread
other than the thread it was created
on.
But… How can I make this workable?
System.Threading.Thread t = new System.Threading.Thread(()=>
{
// do really hard work and then...
listView1.Items.Add(lots of items);
lots more UI work
});
t.Start();
I don’t care when, or how the Thread finishes, so I don’t really care about anything fancy or over complicated atm, unless it’ll make things much easier when working with the UI in a new Thread.
You can’t. UI operations must be performed on the owning thread. Period.
What you could do, is create all those items on a child thread, then call
Control.Invokeand do your databinding there.Or use a
BackgroundWorker