溫馨提示×

c#如何創(chuàng)建子進(jìn)程

c#
小億
89
2024-09-05 04:58:58
欄目: 編程語言

在C#中,可以使用System.Diagnostics.Process類來創(chuàng)建子進(jìn)程

using System;
using System.Diagnostics;

namespace CreateSubprocessExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // 創(chuàng)建一個(gè)新的ProcessStartInfo對象,用于配置子進(jìn)程
            ProcessStartInfo startInfo = new ProcessStartInfo
            {
                // 設(shè)置要啟動的應(yīng)用程序的文件名
                FileName = "notepad.exe",
                
                // 設(shè)置是否使用操作系統(tǒng)shell啟動進(jìn)程
                UseShellExecute = true,
                
                // 設(shè)置是否將子進(jìn)程的輸出重定向到當(dāng)前進(jìn)程
                RedirectStandardOutput = false,
                
                // 設(shè)置是否將子進(jìn)程的錯誤輸出重定向到當(dāng)前進(jìn)程
                RedirectStandardError = false,
                
                // 設(shè)置是否將當(dāng)前進(jìn)程的輸入重定向到子進(jìn)程
                RedirectStandardInput = false,
                
                // 設(shè)置子進(jìn)程是否在新窗口中啟動
                CreateNoWindow = false
            };

            try
            {
                // 使用ProcessStartInfo對象啟動子進(jìn)程
                using (Process process = Process.Start(startInfo))
                {
                    // 等待子進(jìn)程退出
                    process.WaitForExit();

                    // 獲取子進(jìn)程的退出代碼
                    int exitCode = process.ExitCode;
                    Console.WriteLine($"子進(jìn)程已退出,退出代碼:{exitCode}");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"啟動子進(jìn)程時(shí)發(fā)生錯誤:{ex.Message}");
            }
        }
    }
}

在這個(gè)示例中,我們創(chuàng)建了一個(gè)新的ProcessStartInfo對象,并設(shè)置了一些屬性來配置子進(jìn)程。然后,我們使用Process.Start()方法啟動子進(jìn)程,并等待其退出。最后,我們獲取子進(jìn)程的退出代碼并將其輸出到控制臺。

0