我有一个自定义的UI元素。我正在通过拥有线程以外的线程访问它。我能够获取/检查其类型(自定义类型)并得到正确的结果。依赖这个结果安全吗?(我知道为了访问/更新其值,我们必须使用拥有UI线程)
前任:
bool result = ((uiElement as CustomType) != null)
检查控件的类型可以在拥有线程以外的线程中安全地完成:
bool result = uiElement is CustomType;
如果出于任何原因(您在问题中没有提到),
-
uiElement
是外部可访问的变量(例如字段或属性), - 并且
uiElement
的值可能会被另一个线程更改, - 并且您仍然需要在类型检查后访问它,
将类型检查的结果分配给局部变量后更安全:
var customElement = uiElement as CustomType;
if (customElement != null)
{
// do something with customElement ...
}