Winforms では、すべてのコントロールにInvokeRequired
プロパティがあり、コントロールを変更するために .[Begin]Invoke を呼び出す必要がある場合に true を返します。
DispatcherObject.CheckAccess()
WPF では、 andに明らかに似た構造がありますDispatcher.CheckAccess()
が、私はそのEditorBrowsable(EditorBrowsableState.Never)
属性に怯えています。このようにエディターのブラウジングを無効にすると、「これを行うべきではありません。いや、本当に。これが差し迫った問題を解決する必要がある場合、包括的な問題に対するソリューションの設計を誤っています」という意味で使用します。一方、私が見つけた唯一の代替手段 (そして実際、私の元の解決策) はThread.CurrentThread.ManagedThreadId == 1
. (これは恐ろしいことです。そして、一般的なケースでは機能しません。私は知っています。ただし、私の限られた用途では機能します。)
MSDN のドキュメントEditorBrowsable
は、属性の存在と背後にある理由について沈黙しています。それは本当に「これを使用しないでください」という意味ですか?