Jest to bardziej wymaganie Windows niż WPF i wraca do oryginalnego projektu formularzy i formantów systemu Windows, sprzed wcześniej .NET.
STAThread odnosi się do "Single-Threaded Apartments", który odnosi się do modelu gwintowania używanego przez bieżący (główny) wątek. Używany model wątków dyktuje, w jaki sposób inne aplikacje .NET i COM będą komunikować się z aplikacją (i z natury jej wątkami). Jednowątkowy model aplikacji wymaga, aby żaden pojedynczy obiekt nie "żył" w więcej niż jednym wątku STA naraz, weryfikuje model wątków MTA; i pozwala na przekazywanie wskaźników do danych w mieszkaniach tylko przez rozkazowanie jako obiekt.
Zasadniczo, z deklaracją [STAThread], inne aplikacje będą wiedzieć, jakie są zasady twojego wątku podczas wysyłania danych. Model STA jest najczęstszym modelem wątków dla wątków/aplikacji systemu Windows; ale czasami natkniesz się na pewien kod, który nie będzie działał, jeśli zostanie wywołany z wątku modelowanego w STA, ponieważ jest zaprojektowany do wysyłania/odbierania danych przez granice wątków w sposób niezgodny z ograniczeniami STA. Wiedząc z góry, jaki model mieszkania danego wątku pozwala IDE wychwycić te wyjątki podczas kompilacji, zamiast uzyskiwać nieprzyjemne błędy naruszenia dostępu, gdy próbujesz użyć obiektu przez granice wątków w czasie wykonywania.
Można przeczytać o STA i MTA wątków z artykułem MSDN pod adresem: http://msdn.microsoft.com/en-us/library/ms680112(VS.85).aspx
Zauważ, że nawet zwykłe aplikacje .NET (WPF) sprzed wymagała [STAThread] Deklaracja szczycie main().
jeśli to nie jest "zbyt skomplikowane" dla początkującego .. to nie musisz ..uwielbiam czytać :) –
Wciąż jest miło mieć podsumowanie na SO w celach informacyjnych, a jeśli wspomniany blog przechodzi w tryb offline, post zostaje usunięty, Microsoft spala się w kuli ognia piekielnego itp. –