C#通过Console实现子进程向父进程发消息

来源:互联网 发布:淘宝客 发展趋势 编辑:程序博客网 时间:2024/06/10 08:55

  父进程启动子进程代码如下:

           var startinfo = new ProcessStartInfo({子程序路径}, "{子程序接收参数}");

            startinfo.CreateNoWindow = true;   //不创建窗口

            startinfo.RedirectStandardOutput = true;//重定向子程序标准输出

            startinfo.UseShellExecute = false;//

            var p = Process.Start(startinfo);          

              p.EnableRaisingEvents = true;

              p.BeginOutputReadLine();

              p.OutputDataReceived += (sender,e)=>{var receiveData = e.Data;};//当客户端执行Console.WriteLine("message")后会触发此事件,

                                                                                                                                       //这里receiveData值为"message"。子进程关闭时也会触发此事件,receiveData为null。



     子进程代码如下:

 /// <summary>

        /// 应用程序的主入口点。

        /// </summary>

        [STAThread]

        static void Main(string[] args)

        {

            int i = 0;

           if(args!=null&&args.Length>0)

             {

                    var  param = args[0];//此处值为"{子程序接收参数}"

             }

            

            while (true)//间隔一秒向标准输出写入数据,在主进程中的子程序对象将触发OutputDataReceived事件。

            {

                Console.WriteLine("message");//注意 :Console.Write不会触发OutputDataReceived事件。且程序

                Thread.Sleep(1000);

            }

        }

0 0
原创粉丝点击