首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

周末快下班了,写的这个程序执行不下去了。高手一起讨论解决

2013-06-19 
周末快下班了,写的这个程序执行不下去了。在线等高手一起讨论解决。问题:就是执行到WaitForExit 这里执行不

周末快下班了,写的这个程序执行不下去了。在线等高手一起讨论解决。

问题:就是执行到WaitForExit 这里执行不下了,错了也给应该有一个反馈吧。

程序的下载地址:正在上传,,,,先看代码,把,,,

StringBuilder sb = new StringBuilder();
        public Form1()
        {
            InitializeComponent();


        
           

            string apppath = System.AppDomain.CurrentDomain.BaseDirectory;
            string extArguments = "";
            string pfdFilePath = apppath + "a.pdf";
            string swfFilePath = apppath + "b.swf";
            Process process = new Process();     //创建进程对象 

            ProcessStartInfo startInfo = new ProcessStartInfo();

            startInfo.FileName = apppath + "pdf2swf.exe";
            startInfo.Arguments = pfdFilePath + " -s flashversion=9 -o " + swfFilePath + extArguments;

            startInfo.UseShellExecute = false;     //不使用系统外壳程序启动 
            startInfo.RedirectStandardInput = true;   //不重定向输入 
            startInfo.RedirectStandardOutput = true;   //重定向输出 
            startInfo.CreateNoWindow = true;     //不创建窗口 
            startInfo.RedirectStandardError = true;

            process.StartInfo = startInfo;

            process.Start();


            process.BeginOutputReadLine();
            process.OutputDataReceived += new DataReceivedEventHandler(SortOutputHandler);
            process.ErrorDataReceived += new DataReceivedEventHandler(SortOutputHandler);


            process.WaitForExit();

        }

      
        void SortOutputHandler(object sendingProcess, DataReceivedEventArgs outLine)            
        {           
            if (!String.IsNullOrEmpty(outLine.Data))
            {             


                sb.Append(Environment.NewLine + "[" + numOutputLines.ToString() + "] - " + outLine.Data);               
            }
        }


[解决办法]
process.WaitForExit();

本来就是要等你启动的process Exit之后才返回的
用不着就不要调用
启动之后,你可以通过process.HasExit属性来判断有没有退出或者使用process.Exited事件
[解决办法]
命令行要加/c 才会自动关闭,不然你等到死他也跑不过那行

热点排行