Por que o WPF requer um atributo STAThread para ser aplicado ao método Main?

Eu sou novo no WPF, e em cada tutorial que eu leio, eles têm um[System.STAThread] atributo aplicado à suaMain método, ou eles dizem ao leitor para fazer isso.

Este atributo é realmente "obrigatório"? E se sim, porque?