Я получаю / проверяю тип UIElement через не принадлежащий поток пользовательского интерфейса, это безопасно? - PullRequest
0 голосов
/ 10 января 2019

У меня есть элемент пользовательского интерфейса. Я получаю доступ к нему через поток, не являющийся владельцем. Я могу получить / проверить его тип (пользовательский тип) и получил правильный результат. Безопасно ли зависеть от этого результата? (Я знаю, что для доступа / обновления его значения мы должны использовать собственный поток пользовательского интерфейса)

Ex:

bool result = ((uiElement as CustomType) != null)

1 Ответ

0 голосов
/ 10 января 2019

Проверка типа элемента управления может быть безопасно выполнена в потоке, отличном от потока-владельца:

bool result = uiElement is CustomType;

Если по какой-либо причине (вы не упомянули в вопросе),

  • uiElement - внешне доступная переменная (например, поле или свойство),
  • и значение uiElement может быть изменено другим потоком,
  • и вам все еще нужно получить доступ к нему после проверки типа,

безопаснее один раз присвоить результат проверки типа локальной переменной:

var customElement = uiElement as CustomType;

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