“System.InvalidOperationException:该对象目前正在其他地方使用” - 我该如何解决这个问题?

时间:2008-10-29 07:39:01

标签: c# exception invoke

尝试更新图片时出现此错误。 这是一个跨线程的更新,但我使用.Invoke(),所以这不应该是问题,如果它。

2 个答案:

答案 0 :(得分:6)

(回答我自己的问题,对其他人,以及将来参考)

认为(尚未完全确定)这是因为如果尚未加载/显示控件,InvokeRequired将始终返回false。我做了一个似乎暂时工作的解决方法,即在其创建者中简单引用相关控件的句柄,如下所示:

var x = this.Handle; 

(请参阅http://ikriv.com:8765/en/prog/info/dotnet/MysteriousHang.html - 向下?cached version

(相关问题:Boiler plate code replacement - is there anything bad about this code?

答案 1 :(得分:3)

如果句柄尚不存在,您可以通过继承控件并调用CreateHandle来强制它;然而,更大的问题是:你为什么要用一个尚未加载的表格做事?我个人在Load之后才开始这样的操作。