我已经阅读了这个SO问题,但它没有帮助。
这里的情况有所不同。我正在使用 Backgroundworkers。第一个 Backgroundworker 开始在用户的图像输入上运行,并在 firstbackgroundworker_runworkercompleted() 中调用另外 3 个 Backgroundworkers。
algo1backgroundworker.RunWorkerAsync();
algo2backgroundworker.RunWorkerAsync();
algo3backgroundworker.RunWorkerAsync();
这是 each 的代码:
algo1backgroundworker_DoWork()
{
Image img = this.picturebox.Image;
imgclone = img.clone();
//operate on imgclone and output it
}
algo2backgroundworker_DoWork()
{
Image img = this.picturebox.Image;
imgclone = img.clone();
//operate on imgclone and output it
}
在其他算法的backgroundworker_doWork()中执行类似的操作。
现在我有时会收到“InvalidOperationException - object is currently in use elsewhere”的错误。这是非常武断的。有时候我会在algo1backgroundworker_DoWork和algo2backgroundworker_DoWork以及Application.Run(new myWindowsForm())中遇到这个问题。
我对发生的情况一无所知。