I have an app written in C# (obviously). Here is my dilemma:
The form loads, instantiates a bunch of worker threads that execute one at a
time. When one finishes, it starts the next one in line. I have about 5
datagrids on 5 different tab pages in a tab control. What I'm using the
Threads for is pretty basic: get data from a database and fill a datagrid. I
use delegates throughout to allow the worker thread to call the
'FillDataGrid' method in the main thread (the form thread). I've had
problems before with threads not accessing other threads controls which is
why I use the delegates. But still it crashes with the following:
An unhandled exception of type 'System.ArgumentException' occurred in
system.windows.forms.dll
Additional information: Controls created on one thread cannot be parented to
a control on a different thread.
I decided to add another tab page (out of pure imagination) as the first tab
page in the control. voila! now everything loads properly (without changing
any code whatsoever). Problem is, I try to programmatically remove the
temporary page (with a generic "please wait while loading" message). It
removes the page fine, but on the next page in line, all the controls
dissappear. If I don't change or remove tab pages programmatically, all the
controls stay intact. I'm not sure what I am missing, and leaving the temp
page intact is just ugly. Anybody know what I'm missing?