Esto es más un requisito de Windows que uno de WPF, y vuelve al diseño original de los formularios y controles de Windows, anteriores a .NET.
STATread significa "Single-Threaded Apartments", que hace referencia al modelo de subprocesamiento utilizado por el subproceso actual (principal). El modelo de subprocesamiento en uso dicta cómo otras aplicaciones .NET y COM hablarán con su aplicación (e inherentemente, sus subprocesos). El modelo de aplicación de subproceso único requiere que ningún objeto individual "viva" más de un hilo STA a la vez, frente al modelo de subprocesos MTA; y permite el paso de punteros a los datos a través de los apartamentos solo mediante clasificación como objeto.
Básicamente, con la declaración [STAThread], otras aplicaciones sabrán cuál es la política de su hilo al enviar sus datos. El modelo STA es el modelo de subprocesamiento más común para subprocesos/aplicaciones de Windows; pero a veces se encontrará con cierto código que no se ejecutará si se lo llama desde un subproceso modelado por STA, porque está diseñado para enviar/recibir datos a través de límites de subprocesos de maneras que no cumplen con las restricciones de STA. Saber de antemano cuál es el modelo de apartamento de un subproceso dado permite al IDE detectar estas excepciones en tiempo de compilación en lugar de tener errores de violación de acceso desagradables cuando intenta utilizar un objeto a través de límites de subprocesos durante el tiempo de ejecución.
Usted puede leer acerca de STA y subprocesos MTA del artículo de MSDN en: http://msdn.microsoft.com/en-us/library/ms680112(VS.85).aspx
Tenga en cuenta que las aplicaciones .NET incluso normales (antes de WPF) requiere la declaración [STAThread] cima de la main().
si no es "demasiado complicado" para un principiante ... entonces no es necesario ...Me encanta leer :) –
Todavía es bueno tener un resumen aquí en SO para fines de referencia, y si dicho blog se desconecta, la publicación se elimina, Microsoft se quema en una bola de fuego del infierno, etc. –