Я сделал это один раз для своего проекта, чтобы закрыть одно приложение и открыть другое приложение.
System.Threading.Thread newThread;
Form1 frmNewForm = new Form1;
newThread = new System.Threading.Thread(new System.Threading.ThreadStart(frmNewFormThread));
this.Close();
newThread.SetApartmentState(System.Threading.ApartmentState.STA);
newThread.Start();
И добавьте следующий метод. Ваш newThread.Start будет вызывать этот метод.
public void frmNewFormThread)()
{
Application.Run(frmNewForm);
}