5

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

4

2 回答 2

6

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

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

var x = this.Handle; 

(见http://ikriv.com:8765/en/prog/info/dotnet/MysteriousHang.html - down?缓存版

(相关问题:样板代码替换——这段代码有什么不好的地方吗?

于 2008-10-29T07:42:09.797 回答
3

如果句柄尚不存在,您可以通过子类化控件并调用CreateHandle; 但是,更大的问题是:您为什么要使用尚未加载的表单来做事?就我个人而言,我只会在 Load 之后开始这样的操作。

于 2008-10-29T08:14:24.523 回答