You're accessing the control from a worker thread, which is illegal. If you run this in the debugger, an exception will be thrown to warn you.
Putting the call to
in a separate thread is a good idea, but you must get the file paths and set the backgrounds on the UI thread.
You also have the problem that the data in the grid might change while your thread runs.
A solution would be to create a collection of file paths on the UI thread and pass that to your
. Then in your completed handler ( which runs on the UI thread ) search the grid again and set the background for missing files.
You'll have to test this for performance on "a boatload of rows"