• C# 程序启动其他进程程序


    1  启动一个独立进程,需要用到的命名空间是:using System.Diagnostics;   进程类是 Process ,进程的相关参数信息类是 ProcessStartInfo

    2  等待启动的控制台app代码:

    using System;
    using System.Threading;
    namespace ShowConsoleApp
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("app start!");
                foreach (string item in args)
                {
                    Console.WriteLine(" accept a arg that is {0}", item);

                    Thread.Sleep(3000);             
                }

                Console.WriteLine("app stop!");
            }
        }
    }

    3  启动模式:  并行和串行模式,注意比较代码区别。

    using System;
    using System.Threading;
    using System.Diagnostics;

    namespace HDTest
    {
        class Program
        {
            static void Main(string[] args)
            {           

               for (int i = 0; i < 2; i++)
               {
                   //并行: 多个同命实例进程一起执行
                   RunMutilInstanceProcess(i);

                   //串行,一个进程启动结束后,运行下一个
                 //  WaitSonProcess(i);

                   Thread.Sleep(2000);

               }

                Console.ReadLine();
            }

            static void RunMutilInstanceProcess(int i)
            {
                string appPath = @"E:VS2010CodeAppTestShowConsoleAppinDebugShowConsoleApp.exe";
                ProcessStartInfo process = new ProcessStartInfo();
                process.FileName = appPath;
                process.Arguments = "process " + i.ToString();

                process.UseShellExecute = false;
                process.CreateNoWindow = true;

                process.RedirectStandardOutput = true;
                Process.Start(process);

               // string Result = p.StandardOutput.ReadToEnd();
               // Console.WriteLine("the console app output is {0}", Result);
                 Console.WriteLine(" process {0} start", i);
            }

            static void WaitSonProcess(int i)
            {
                Process process = new Process();
                string appPath = @"E:VS2010CodeAppTestShowConsoleAppinDebugShowConsoleApp.exe";
                process.StartInfo.FileName = appPath;
                process.StartInfo.Arguments = "process " + i.ToString();

                process.StartInfo.UseShellExecute = false;
                process.StartInfo.CreateNoWindow = true;

                process.StartInfo.RedirectStandardOutput = true;

                // process.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
                // Start the process
                process.Start();

                Console.WriteLine(" process {0} start", i);
                // Wait that the process exits
                 process.WaitForExit();

                Console.WriteLine("the process  had exits");

                // Now read the output of the DOS application
                string Result = process.StandardOutput.ReadToEnd();

                Console.WriteLine("the console app output is {0}", Result);
            }
        }
    }

  • 相关阅读:
    打开CAD时出现“acvmtools.arx ARX命令中发生异常
    VS2010编译错: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403...的解决方法
    CAD中的相对坐标和绝对坐标
    CAD中的文本编排操作
    使用VS2008,VS2010编译64位的应用程序
    已知两切线和半径画圆弧和圆
    AutoCAD2012启动错误 1308 源文件未找到
    C++中的static修饰的变量和函数
    VS2010创建C++静态链接库创建和使用
    Python中同时用多个分隔符分割字符串的问题
  • 原文地址:https://www.cnblogs.com/iampkm/p/3842420.html
Copyright © 2020-2023  润新知