代码之家  ›  专栏  ›  技术社区  ›  Benjol

“System.InvalidOperationException:对象当前正在其他地方使用”-如何解决此问题?

  •  4
  • Benjol  · 技术社区  · 16 年前

    我在更新图像时出错。 这是一个跨线程的更新,但我使用了.invoke(),所以应该不会有问题。

    2 回复  |  直到 14 年前
        1
  •  5
  •   Community Alok Save    7 年前

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

    认为 (还不完全确定)这是因为如果控件尚未加载/显示,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? )

        2
  •  3
  •   Marc Gravell    16 年前

    如果句柄还不存在,可以通过子类化控件并调用 CreateHandle 但是,更大的问题是:为什么您要处理尚未加载的表单?就我个人而言,我只能在装货后才开始这样的操作。