Problema :
VS2005 solleva una eccezione del tipo :
"Impossibile creare un'istanza del controllo X perché il thread corrente non è
un apartment a thread singolo."
Soluzione :
Incapsulare il codice incriminato in un metodo e fare eseguire lo stesso da un thread ad hoc impostando la proprietà ApartmentState su ApartmentState.STA.
Esempio :
Prima :
...
//Codice che solleva l'eccezione
...
Dopo :
Thread fixApartmentState = new Thread(new ThreadStart(this.FixIt));
fixApartmentState.SetApartmentState(ApartmentState.STA);//ECCO LA SOLUZIONE!
fixApartmentState.Start();
private void FixIt()
{
...
//Codice che solleva l'eccezione
...
}
Enjoy C#!