You do not need another thread to create a new form and do not call a Application.Runsecond time. As long as you don't do anything that blocks the user interface (and you should never), both forms will work fine.
MyForm form = new MyForm();
form.Show();
ShowDialog Show , .