C# 我通过非拥有的UI线程获取/检查UIElement的类型是否安全?

C# 我通过非拥有的UI线程获取/检查UIElement的类型是否安全?,c#,wpf,ui-thread,uielement,C#,Wpf,Ui Thread,Uielement,我有一个自定义UI元素。我通过拥有线程以外的线程访问它。我能够获取/检查其类型(自定义类型),并得到正确的结果。依靠这个结果安全吗?(我知道为了访问/更新它的值,我们必须使用拥有的UI线程) 例: 检查控件类型可以安全地在所属线程以外的线程中完成: bool result = uiElement is CustomType; 如果出于任何原因(您在问题中未提及) uiElement是外部可访问的变量(例如字段或属性) 而uiElement的值可能会被另一个线程更改 在类型检查之后,您仍然需

我有一个自定义UI元素。我通过拥有线程以外的线程访问它。我能够获取/检查其类型(自定义类型),并得到正确的结果。依靠这个结果安全吗?(我知道为了访问/更新它的值,我们必须使用拥有的UI线程)

例:


检查控件类型可以安全地在所属线程以外的线程中完成:

bool result = uiElement is CustomType;

如果出于任何原因(您在问题中未提及)

  • uiElement
    是外部可访问的变量(例如字段或属性)
  • uiElement
    的值可能会被另一个线程更改
  • 在类型检查之后,您仍然需要访问它
将类型检查的结果分配给局部变量更安全:

var customElement = uiElement as CustomType;

if (customElement != null)
{
    // do something with customElement ...
}

检查控件类型可以安全地在所属线程以外的线程中完成:

bool result = uiElement is CustomType;

如果出于任何原因(您在问题中未提及)

  • uiElement
    是外部可访问的变量(例如字段或属性)
  • uiElement
    的值可能会被另一个线程更改
  • 在类型检查之后,您仍然需要访问它
将类型检查的结果分配给局部变量更安全:

var customElement = uiElement as CustomType;

if (customElement != null)
{
    // do something with customElement ...
}

检查控件的类型可以安全地在所属线程以外的线程中完成。也最好写
bool result=ui元素为CustumType检查控件的类型可以安全地在所属线程以外的线程中完成。也最好写
bool result=ui元素为CustumType
@Clemens,非常感谢您的编辑。现在清楚多了@克莱门斯,非常感谢你的编辑。现在清楚多了!