I\'ve gone through this SO question but it didn\'t help.
The case here is different. I\'m using Backgroundworkers. 1st backgroundworker starts operating on the image
In windows forms not only should you only access the controls from a single thread but that thread should be the main application thread, the thread that created the control.
This means that in DoWork you should not access any controls (without using Control.Invoke). So here you would call RunWorkerAsync passing in your image clone. Inside the DoWork event handler, you can extract the parameter from the DoWorkEventArgs.Argument.
Only the ProgressChanged and RunWorkerCompleted event handlers should interact with the GUI.