I set up a background thread to show progress information on the screen while my main process is running. I am updating one of three datagridviews, and adjust a progress bar in each call to the background thread. I believe that I am getting a collision in different calls to the worker.ReportProgress. That is I think a new call is arriving before a prior call finishes, throwing the System.Reflection.TargetInvocationException.

Any suggestions on how to resolve this? If this is the problem, then minimizing the time in in the ReportProcess procedure, or lengthening the time between calls would fix the problem, but this seems arbitrary.