Se ejecuta en un nuevo proceso. El documentation parece no estar claro si el proceso se reutiliza o no, pero se puede verificar mostrando el ID del proceso en un cuadro de texto al inicio.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Application.Restart();
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = Process.GetCurrentProcess().Id.ToString();
}
}
También puede ver usando .NET Reflector que se crea un nuevo proceso:
public static void Restart()
{
// ...
ExitInternal(); // Causes the application to exit.
Process.Start(startInfo); // Starts a new process.
// ...
}
Sí, es una muy buena respuesta. – Yuriy