zoukankan      html  css  js  c++  java
  • 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);
            }
        }
    }

    方法二:

     var processInfo = new ProcessStartInfo(fullName);
        processInfo.UseShellExecute = false;
        processInfo.WorkingDirectory = Path.GetDirectoryName(fullName);
        Process.Start(processInfo);

    方法三:

    internal Process processKeyBoard;
    processKeyBoard = Process.Start("osk.exe"); //osk.exe为系统的键盘程序的进程名称

    查看进程名称可以通过右键该程序,查看所在文件夹,再查看属性

  • 相关阅读:
    如何使用sendEmail发送邮件
    Linux curl命令详解
    linux比较两个文件是否一样(linux命令md5sum使用方法)
    strace命令用法详解
    strace用法说明
    ORA-12154 TNS无法解析指定的连接标识符
    VNC远程连接阿里云Linux服务器 图形界面
    pycharm配置Git 代码管理
    FireFox浏览器-xpath快速定位插件:Xpath Checker
    odoo 前端模板引擎 Qweb
  • 原文地址:https://www.cnblogs.com/eve612/p/14809736.html
Copyright © 2011-2022 走看看