|
|
1
5
因为它没有抛出异常,并不意味着你应该这样做。
问题是除了
|
|
2
3
具体的规则是,不能调用使用窗口句柄的Windows API函数。使用属性或调用控件的方法是否最终会进行这样的API调用,这并不十分明显。MSDN文档只列出了其中4个始终可以安全使用:InvokeRequired、Invoke()、BeginInvoke()和CreateGraphics()。 但是是的,有时属性值是可用的,不需要API调用。文本属性是一个很好的例子。它之所以被缓存是因为它经常被使用。 阅读 写作 文本属性变为kaboom,更新屏幕上的文本需要一个API调用。VirtualSize的工作方式完全相同。 你没有得到例外,但这仍然是不洁的。毕竟,UI线程也可能在一微秒后更改文本属性。您将得到一个过时的值,这是一个典型的线程问题,称为争用条件。 |
|
|
user107586 · 如何处理等待句柄不会导致无限循环? 1 年前 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
BenjiFB · C#内存缓存:在一次操作中追加到列表? 1 年前 |
|
|
András Takács · Python多线程问题 1 年前 |
|
|
András Takács · Python多线程错误 1 年前 |