C# 怎么启动和停止一个外部进程_C# 外部进程启动停止方法指南

星降
发布: 2025-11-13 10:12:35
原创
646人浏览过
通过System.Diagnostics.Process类可启动和停止外部进程。使用Process.Start()启动程序,如Process.Start("notepad.exe")或配合ProcessStartInfo配置参数、工作目录等;停止进程时可调用Kill()强制终止或CloseMainWindow()尝试友好关闭,并结合WaitForExit()确保退出,最后调用Dispose()释放资源。示例中启动持续ping进程,用户按键后终止,完整控制进程生命周期。注意异常处理与资源管理。

c# 怎么启动和停止一个外部进程_c# 外部进程启动停止方法指南

在 C# 中启动和停止外部进程主要通过 System.Diagnostics.Process 类实现。这个类提供了丰富的 API 来控制外部程序的运行,比如启动记事本、命令行工具或其他可执行文件,并在需要时终止它。

启动外部进程

使用 Process.Start() 方法可以启动一个外部程序。你可以指定可执行文件路径,也可以传入参数。

常见用法示例:
  • 直接启动一个程序(如记事本):

Process process = Process.Start("notepad.exe");

  • 启动带参数的程序(例如用记事本打开特定文件):

Process process = Process.Start("notepad.exe", "C:\test.txt");

  • 更灵活的方式是使用 ProcessStartInfo,便于配置工作目录、隐藏窗口等:

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "ping";
startInfo.Arguments = "www.baidu.com";
startInfo.UseShellExecute = false; // 允许重定向输入输出
startInfo.CreateNoWindow = true; // 不显示窗口

Process process = Process.Start(startInfo);

停止外部进程

要关闭已启动的进程,可以调用 Kill()Kill(true) 方法强制结束,或者使用 CloseMainWindow() 尝试友好退出。

千面视频动捕
千面视频动捕

千面视频动捕是一个AI视频动捕解决方案,专注于将视频中的人体关节二维信息转化为三维模型动作。

千面视频动捕 27
查看详情 千面视频动捕
  • 强制终止进程(立即结束):

process.Kill();

  • 尝试发送关闭消息给主窗口(模拟用户点击“关闭”按钮):

bool closed = process.CloseMainWindow();
// 如果没有响应,再调用 Kill()

  • 确保资源释放,记得调用 WaitForExit() 等待进程真正退出:

process.Kill();
process.WaitForExit(); // 可选:等待结束
process.Dispose();

完整示例:启动并停止一个进程

下面是一个完整的控制 ping 命令的例子:

using System;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        ProcessStartInfo info = new ProcessStartInfo("ping");
        info.Arguments = "www.google.com -t"; // 持续 ping
        info.UseShellExecute = false;
        info.CreateNoWindow = true;

        Process process = Process.Start(info);

        Console.WriteLine("按任意键停止 ping...");
        Console.ReadKey();

        if (!process.HasExited)
        {
            process.Kill();
            process.WaitForExit();
        }

        process.Dispose();
        Console.WriteLine("进程已结束。");
    }
}

基本上就这些。掌握 Process.StartKill/CloseMainWindow 的使用,就能有效控制外部程序的生命周期。注意处理异常(如程序不存在),并在不需要时释放资源。不复杂但容易忽略细节。

以上就是C# 怎么启动和停止一个外部进程_C# 外部进程启动停止方法指南的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号