You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中为程序的多个同名进程设置特定名称

为C#多进程设置自定义标识(替代进程名)

Windows系统中,进程的**正式名称(ImageName)**由可执行文件的文件名决定,运行中无法直接修改。但可以通过以下两种方式实现“为每个进程赋予特定标识”的需求:

方法1:通过命令行参数传递唯一标识

启动多进程时给每个实例传递专属参数,进程内部读取后可将其作为“特定名称”用于日志、进程间通信等场景,以此区分不同实例。

启动多进程的代码

// 启动3个进程,每个传递不同的标识
for (int i = 0; i < 3; i++)
{
    string instanceTag = $"Worker_{i}";
    ProcessStartInfo startInfo = new ProcessStartInfo
    {
        FileName = "YourApp.exe",
        Arguments = $"--tag {instanceTag}",
        UseShellExecute = false
    };
    Process.Start(startInfo);
}

进程内部获取标识的代码

static void Main(string[] args)
{
    string instanceTag = "DefaultInstance";
    // 解析命令行参数
    for (int i = 0; i < args.Length; i++)
    {
        if (args[i] == "--tag" && i + 1 < args.Length)
        {
            instanceTag = args[i + 1];
            break;
        }
    }

    // 后续可将instanceTag作为该进程的专属标识使用
    Console.WriteLine($"当前进程标识:{instanceTag}");
}

方法2:修改窗口标题区分(仅适用于带UI的进程)

如果你的进程有窗口界面,可以修改窗口标题来标识不同实例,在任务管理器的“应用程序”或“详细信息”标签中能直观看到。

WinForm示例

private void Form_Load(object sender, EventArgs e)
{
    string instanceTag = "Worker_0"; // 可从命令行参数获取
    this.Text = $"你的应用 - {instanceTag}";
}

WPF示例

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    string instanceTag = "Worker_0";
    this.Title = $"你的应用 - {instanceTag}";
}

补充说明

  • 若要在任务管理器中直观区分进程,还可以开启“命令行”列:右键任务管理器详细信息的列标题,选择“命令行”,就能看到每个进程启动时的参数,以此区分不同实例。
  • 进程的ImageName(任务管理器“名称”列)无法在运行中修改,只能通过修改可执行文件的文件名来改变。

内容的提问来源于stack exchange,提问作者Ted

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 18:45:25