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:\VS2010Code\AppTest\ShowConsoleApp\bin\Debug\ShowConsoleApp.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:\VS2010Code\AppTest\ShowConsoleApp\bin\Debug\ShowConsoleApp.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);
        }
    }
}

C# 程序启动其他进程程序的更多相关文章

  1. 比较windows phone程序启动和android程序启动原理

    windows phone 程序是如何启动的了,他和android程序有什么区别,我们重点从native code 层面来分析 在windows phone 程序启动的时候是: 在XAML中使用应用程 ...

  2. windows phone 8 新增功能:从一个应用程序启动另一个程序(file association 和 Protocol association两种方式)

    一. 启动手机预装内置程序打开文件file association 这里以打开word文档为例子 string fileToLaunch = @"HelloKitty.docx"; ...

  3. IOS在一个程序中启动另一个程序

    尽管iPhone不允许同时运行两个应用程序,我们可以从自己的应用程序中启动另一个应用程序,并且可以在应用程序之间共享数据.我们可以使用UIApplication类的openURL:方法从一个应用程序来 ...

  4. iOS -程序启动原理和UIApplication的介绍

    一.UIApplication 简介       (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个Application都有自 ...

  5. 文盘Rust -- 把程序作为守护进程启动

    当我们写完一个服务端程序,需要上线部署的时候,或多或少都会和操作系统的守护进程打交道,毕竟谁也不希望shell关闭既停服.今天我们就来聊聊这个事儿. 最早大家部署应用的通常操作是 "nohu ...

  6. iOS程序启动过程

    First, the function creates the main application object (step 3 in the flowchart). If you specify ni ...

  7. 【Android】应用程序启动过程源码分析

    在Android系统中,应用程序是由Activity组成的,因此,应用程序的启动过程实际上就是应用程序中的默认Activity的启动过程,本文将详细分析应用程序框架层的源代码,了解Android应用程 ...

  8. iOS程序启动的过程及原理

    iOS程序启动的过程及原理 文字部分 先执行main函数,main内部会调用UIApplicationMain函数 UIApplicationMain函数里面做了什么事情??? 1> 创建UIA ...

  9. Qt程序启动画面播放(gif与swf两种动画格式)

    学习Qt有一段时间了,发现一个小问题,网上关于Qt的资料或者总结性的学习及应用文章有点少. 比如,Qt完整的API,程序运行之前的启动画面如何按理想效果播放等,每次想在项目中添加一些应用的时候,总是找 ...

随机推荐

  1. ife task0001页面实现细节问题总结

    好久没写css了,突然对重构页面陌生了许多.不过也没什么,前面几个月一直扩充知识面,偏重了理论技术学习,结果还不算遗憾.昨天重拾css,针对问题做点总结: 一.语义化方面 1.HTML5新标签使用 标 ...

  2. 《Python编程从入门到实践》_第十章_文件和异常

    读取整个文件 文件pi_digits.txt #文件pi_digits.txt 3.1415926535 8979323846 2643383279 下面的程序打开并读取整个文件,再将其内容显示到屏幕 ...

  3. 使用新浪API生成短连接

    公司最近需要进行短信推广,需要发送大批量带有连接地址的短信给用户,并且需要统计短信的点击量.因为需要考虑短信成本问题,需要将长连接地址生成比较短的连接.因为公司本身没有短的一级域名,所以考虑到使用第三 ...

  4. [转]Mysql几种索引类型的区别及适用情况

    此为转载文章,仅做记录使用,方便日后查看,原文链接:https://www.cnblogs.com/yuan-shuai/p/3225417.html Mysql几种索引类型的区别及适用情况   如大 ...

  5. linux环境下 mysql数据库忘记密码 处理办法

    整个修改过程大概3-10分钟(看个人操作),这个时间内mysql出于不需要密码就能登陆的状态,请设法保证系统安全 不罗嗦直接上步骤 1.vi /etc/my.cnf 在[mysqld]下,添加一句:s ...

  6. Java入门到精通——调错篇之EasyUI+SpringMVC Form表单提交到Contorller中文字出现乱码

    一.错误现象. 界面Post提交到Contorller的时候在Contorller中出现乱码. 二.问题解决. 在Web.xml下加入以下代码就可以解决. <filter> <fil ...

  7. ArcGIS 10.3编译旧版本Addin错误的解决办法

    ArcGIS10.2下VS2010的AddIn,在10.3下在VS2012下重新编译出现missing ESRI ArcGIS Add-in SDK错误,导致无法生成esriAddIn安装文件. 该问 ...

  8. 【起航计划ObjC 003】印第安老斑鸠ObjC的幻想 ---- ObjC经典问题

    1.Objective-C的类可以多重继承么?可以采用多个协议么? 答:不可以多重继承,可以采用多个协议. 2.#import和#include的区别是什么?#import<> 跟 #im ...

  9. python 初识

    一.Python介绍 Python简介 Python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...

  10. 单例模式(C++)

    #include <iostream> #include <string> using namespace std; class singleton { private: si ...