Hello all,
Pardon the topic name, but this error has been giving us a lot of trouble and after weeks of investigating we still have no idea how, when, or why it happens.
We use background workers but the grid that's getting this error is independent of the BG.
If someone can please tell us when the error happens so we can trap it, that would be great.
Attached is the error message we're getting when the "Red X" happens.
Thank you very much.
I have a lot, but I discover that if I use MethodInvoker (Which, I can, because of the function;'s signature) I get all of my performance back. :)
Thanks!
How many rows you got? Since the binding can't be performed in the background, many rows will slow the action.
Ok, I created the delegate in the UC and I'm using Invoke to call it. It seems to have stopped the problems but it took a huge performance hit. Is there anything I can do here? Users are now clamoring that they want their speed back...
What can I do?
You need to make something like this:
public void SetDataSource(DataTable table)
{
if (grid.InvokeRequired)
grid.Invoke(new Action<DataTable>(SetDataSource), table);
}
else
grid.DataSource = table;
Mike,
I have a User-Control with a grid. This UC has a "Refresh" Method, which refreshes the Grid's Datasource. This method is invoked by the "DoWork" event of the BackgroundWorker. As you well said, this error is impossible to track down and unreliable to replicate.
I read something about "Invoke" but I am not sure how to do this. How can I make sure that this doesn't happen? We set the Datasource of the grid to "Nothing", then do a "DoEvents" and then set it to the new datatable that's being pulled out of the DB.
Do you have any suggestions?