В DoWork
методе BackgroundWorker вы не можете получить доступ к элементам управления, созданным в главном потоке, но в этом методе вы можете передать загруженное изображение методу RunWorkerCompleted
, потому что это событие запускается в потоке, в котором вы создаете BackgroundWorker ( в большинстве случаев это основной поток).
BackgroundWorker backgroundworker = new BackgroundWorker();
backgroundworker.DoWork += new DoWorkEventHandler(backgroundworker_DoWork);
backgroundworker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundworker_RunWorkerCompleted);
static void backgroundworker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
//download image and make Image class instance
e.Result = //assign your image here
}
static void backgroundworker_DoWork(object sender, DoWorkEventArgs e)
{
Image i = (e.Result as Image);
//assign image to your control
}