假设在实例化表单/控件/元素的线程(通常是主线程)中运行的代码不会同时修改/访问该元素,是否可以:
获取 TextBox 的 Text 属性。
枚举一个ListView。
订阅表单的关闭事件。 (知道钩子将从实例化该表单的线程中调用)
我已经尝试了所有 3 个方法,并且该程序似乎没有抱怨这一点。我一直认为您必须调用任何想要远程触摸任何与 UI 相关的内容(读或写)的调用。
我非常清楚为什么在修改元素时需要使用 IsInvokeRequired/Invoke 模式,但我不明白为什么访问属性/事件会导致任何问题。
这绝对是可能的,但是,它可能会导致意外的行为。此外,还需要考虑其他与线程相关的错误,例如竞争条件/死锁参见托管线程最佳实践.
为了安全起见,我始终坚持在 UI 线程上访问 UI。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)