В Winforms все элементы управления имеют свойство InvokeRequired
, которое возвращает true, если мне нужно позвонить. [Begin] Вызовите элемент управления, чтобы его изменить.
В WPF существует, по-видимому, аналогичная конструкция в DispatcherObject.CheckAccess()
и Dispatcher.CheckAccess()
, но меня испугает атрибут EditorBrowsable(EditorBrowsableState.Never)
. Когда я отключу просмотр редактора таким образом, я использую его, чтобы это означало: "Вы не должны этого делать. Нет, на самом деле. Если это необходимо, решите свою непосредственную проблему, вы неправильно разработали свое решение для своей всеобъемлющей проблемы". С другой стороны, единственная альтернатива, которую я нашел (и, фактически, мое оригинальное решение), - Thread.CurrentThread.ManagedThreadId == 1
. (Это ужасно, но это не работает в общем случае. Я знаю, но это работает для моего ограниченного использования.)
MSDN документация умалчивает о наличие и обоснование атрибута EditorBrowsable
. Разве это действительно означает "не использовать это", как если бы я набрал его, или у него есть какой-то другой менее запретительный смысл?