Hey folks, im at the last item on my todo list of a reasonably large commercial application and am looking for some help

I am using a application-wide static database class that encompasses all of my bindingsources and tableadapters, and my data fetch/manipulate/insert functions.

It connects to an Oracle 9i database via ODBC.

I use a fill() command to fill up the data once and it is shared between many datagridviews among many forms (only one of each time is ever open at the same time though, different flavors/access levels/functions of the same program basically)

I need to now either threaded or not have it go out and fill and compare the data and update my local copy if it has changed.

I need to do this as unobtrusively as possible.

Once every 30 to 120 seconds is probably what I will do as far as refresh interval. I know how to create a seperate thread and have it fill the data, but what sort of pitfalls can I encounter when I am manipulating a dataGridView that the user is viewing.


Nowhere in my program does my datagridview get directly edited. So I can ensure that it wont affect any edit operations. Everything is tied to a masterkey and all of my update/insert/delete functions require this master key.

Basically in browsing a list of items, if the user selects a single item, it opens in a seperate view, that single item up for editing.

When that item is done being edited, I remove it from my combined view, and re-add the updated version.

This was largely done so I could keep things running speedily and to avoid a forced requery on any data changes. I also had to cheat and make a fake PictureButtonCell class where it contains a pressed, and a non-pressed button image and switches to the pressed button if you mousedown on it and it records which record you clicked on

Anyways, What specifically should I be aware of that will cause problems when trying to update a dataGridView in another thread? Current editing wont be a problem, but a user will be tabbing around and etc.

Any helpful tips or examples would be nice :)