Greetings,


i am just trying to show the console output to label text. but it's just not working..


i have tired hours and hours of this and that but none is working.. and now came here for support


here is the code i have tried so far:


Code:
        private static void ExecuteCLI(string[] args, string workingDir, Form form, Label label)

        {

            List<string> lArgs = new List<string>(args);

            lArgs.RemoveRange(0, 3);


            string cliFile = args[2];

            string cliArgs = string.Join(" ", lArgs.ConvertAll(item => item.Contains(" ") == true ? '"' + item + '"' : item));

            //create working directory if not exits

            if(Directory.Exists(workingDir) == true && isIde == true)

            {

                label.Text = "Deleting Working Dir...";

                foreach(string filePath in Directory.GetFiles(workingDir, "*.*", SearchOption.AllDirectories))

                {

                    new FileInfo(filePath).Attributes = FileAttributes.Normal;

                    File.Delete(filePath);

                }

                Directory.Delete(workingDir, true);

                label.Text = "Status Goes Here...";

            }

            if(Directory.Exists(workingDir) == false)

            {

                Directory.CreateDirectory(workingDir);

            }


            Process process = new Process()

            {

                StartInfo = new ProcessStartInfo()

                {

                    FileName = cliFile,

                    Arguments = cliArgs,

                    UseShellExecute = false,

                    WindowStyle = ProcessWindowStyle.Hidden,

                    CreateNoWindow = true,

                    RedirectStandardOutput = true,

                    WorkingDirectory = workingDir,

                },

            };


            process.OutputDataReceived += delegate (object sender, DataReceivedEventArgs e)

            {

                if(e.Data == null)

                {

                    return;

                }

                string cliMSG = e.Data.Trim();

                if(cliMSG.StartsWith("Extracting") == true)

                {

                    System.Diagnostics.Debug.WriteLine(cliMSG); //if no method is used, it's shows the output on debug/output window just fine..

                   

                    //sUpdateAddressBar(form, label, cliMSG); (3rd Method, crash/keeps loading forever without updating)

                   

                    //setLabelText(label, cliMSG);  (2nd Method, crash/keeps loading forever without updating)

                   

                    /* // (1st method though don't crash the app, just don't updte the

                    form.BeginInvoke((Action)(() =>

                    {


                        label.Text = cliMSG;

                    }));

                    */

                }

            };

            process.Start();

            process.BeginOutputReadLine();

            process.WaitForExit();

            process.Dispose();


            form.DialogResult = DialogResult.OK;

        }


        private static void setLabelText(Label label, string text)

        {

            if(label.InvokeRequired)

            {

                label.Invoke((System.Action)(() => setLabelText(label, text)));

            }

            else

            {

                label.Text = text;

            }

        }


        private delegate void sCBUpdateAddresBar(Form form, Label label, string text);

        private static void sUpdateAddressBar(Form form, Label label, string text)

        {

            if(form.InvokeRequired)

            {

                form.Invoke(new sCBUpdateAddresBar(sUpdateAddressBar), form, label, text);

            }

            else

            {

                label.Text = text;

            }

        }

as i have noted in comments no method i have tried does works


here is the screen shot of crashed/loading forever: (i red marked the area to identify the cursor)
Name:  CLI-Status-Error.png
Views: 620
Size:  4.0 KB

can any one suggest me what i am doing wrong? here?


best regards