c# - Application.Restart() 是否为应用程序创建新进程?

标签 c# .net

据我所知,Application.Restart() 会重新启动一个应用程序并创建一个新的应用程序实例。这个实例是在新进程中创建,还是使用旧进程?

感谢您的回答。

最佳答案

它运行在一个新的进程中。 documentation进程是否被重用似乎有点不清楚,但可以通过在启动时在文本框中显示进程 ID 来验证。

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();
    }
}

您还可以看到使用 .NET Reflector创建一个新进程:

public static void Restart()
{
    // ...
    ExitInternal();            // Causes the application to exit.
    Process.Start(startInfo);  // Starts a new process.
    // ...
}

关于c# - Application.Restart() 是否为应用程序创建新进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3530722/

相关文章:

.net - Azure 函数未并行运行

c# - 在 .NET 中有什么方法,除了 Oledb 是独立于数据库的

.net - Newtonsoft.Json - mscorlib.dll 中发生了类型 'System.IO.FileLoadException' 的第一次机会异常

c# - 如何避免在服务层上引用 Entity Framework 的需要?

c# - 这是 Partitioner.Create(int fromInclusive, int toExclusive) 中的错误吗?

c# - 为什么使用私有(private)成员然后使用公共(public)属性来设置它们?

.net - 从模板生成平面文件并将其解析回来的最佳方法是什么

c# - 尝试使用 LuaInterface 时出现 BadImageFormatException

c# - 语法错误,命令无法识别。服务器响应是 ''

c# - 我可以通过编程方式在内存中创建虚拟磁盘吗?