Levantar eventos no .NET no thread principal da interface do usuário

Estou desenvolvendo umbiblioteca de classes no .NET que outros desenvolvedores irão consumir eventualmente. Esta biblioteca faz uso de alguns threads de trabalho eesses threads acionam eventos de status que farão com que alguns controles da interface do usuário sejam atualizados no aplicativo WinForms / WPF.

Normalmente, para cada atualização, você precisaria verificar a propriedade .InvokeRequired no WinForms ou propriedade WPF equivalente e invocar isso no thread da interface do usuário principal para atualização. Isso pode envelhecer rapidamente, e algo não parece certo em fazer o desenvolvedor final fazer isso, então ...

Existe alguma maneira que minha biblioteca pode disparar / invocar os eventos / delegados do thread principal da interface do usuário?

Em particular...

Devo "detectar" automaticamente o segmento "principal" a ser usado?Se não, devo exigir que o desenvolvedor final chame alguns (pseudo)UseThisThreadForEvents() método quando o aplicativo é iniciado para que eu possa pegar o segmento de destino da chamada?

questionAnswers(8)

yourAnswerToTheQuestion