private void button1_Click(object sender, EventArgs e)
{
ParameterizedThreadStart p = new ParameterizedThreadStart(Run);
Thread t = new Thread(p);
t.SetApartmentState(ApartmentState.STA);//set the correct threading model and all is good.
t.Start(new Form2());
}