Ontem enquanto estávamos falando sobre Multithreading em aplicações Windows Forms durante o curso, lembrei-me de um atributo muito interessante que o Roy Osherove criou.
Como sabemos, quando criarmos uma worker thread, voce não pode manipular qualquer controle que está dentro da aplicação, pois os controles só podem ser acessados através da thread que os criou. Sendo assim, o Roy desenvolveu um atributo chamado RunInUIThreadAttribute, que voce coloca no método que será executado pela thread de background. Automaticamente, ao executar esse método e identificar que ele está decorado com o atributo RunInUIThreadAttribute, automaticamente ele se encarregará de encontrar e processar aquele método através da thread correta.