InvalidOperationException:对象目前在别处使用!

时间:2011-07-21 10:24:53

标签: c# winforms exception

我弄错了..我使用循环来运行一堆图像来绘制..我也使用多线程..

什么可能导致这个问题,怎么可能被阻止?

我使用winforms

其他信息:

它告诉我如果我在GetHDv方法之后使用图形,请调用ReleaseHDC方法..

这是什么意思?

部分代码:

这样创建的线程:

在我这样做之前: BackgroundWorker1.RunWorkerAsync();

现在我正在测试:

Backgroundworker back = new backgroundworker(); back.runworkerAsync();

是异常的根源吗?

1 个答案:

答案 0 :(得分:1)

根据this page

  

“目前在其他地方使用对象”真正发生的事情是   GDI +正在抱怨它的设备上下文(DC)   试图使用已经“正在使用”。一般来说,使用WinForms   表示存在递归的Graphics.GetHdc。 GetHdc必须   在任何其他GetHdc之前匹配ReleaseHdc。

  

如果您要从中获取表单,则可能会遇到此异常   多线程。你可能也会遇到一个   跨线程异常也是如此。在这种情况下的解决方案是   访问表单时不使用多个线程,包括绘图。