Я хочу выполнить много команд на одном экземпляре приложения командной строки - PullRequest
1 голос
/ 06 октября 2019

Я знаю, что название не объясняет это хорошо, поэтому я объясню это лучше здесь. Я работаю над приложением для форм Windows (пусть это будет приложение A), которое по сути является графическим интерфейсом для другого приложения, написанного на другом языке из командной строки (приложение B). Проблема в том, что я не знаю, как запустить несколько команд на одном экземпляре приложения. Мне нужно заставить нажатие кнопки изменить некоторые значения с помощью одной команды, выполняемой в приложении B, а нажатие другой кнопки отображает значения. Это не работает, потому что после нажатия первой кнопки значения меняются, но при нажатии другой кнопки вызывается другой экземпляр приложения B с отображением команды, и его значения остаются неизменными (по умолчанию).

private void button2_Click(object sender, EventArgs e)  //apply command 
        {

            using (Process process = new Process)
            {
                process.StartInfo.FileName = FileLocation;//app B location
                process.StartInfo.UseShellExecute = false;
                process.StartInfo.RedirectStandardOutput = true;
                process.StartInfo.Arguments = "apply " + textBox1.Text + "#";
                process.Start();

                //apply,# ->command for changing values 
                //textBox1.Text is  input to specify how values are changed

                StreamReader reader = process.StandardOutput;
                string output = reader.ReadToEnd();


                label1.Text = output;

                process.WaitForExit();
            }

        }
private void button8_Click(object sender, EventArgs e)  //view command
        {

            using (Process process = new process)
            {
                process.StartInfo.FileName = FileLocation;
                process.StartInfo.UseShellExecute = false;
                process.StartInfo.RedirectStandardOutput = true;
                process.StartInfo.Arguments = "view";
                process.Start();
                //view -> command to see values 

                StreamReader reader = process.StandardOutput;
                string output = reader.ReadToEnd();


                label1.Text = output;

                //process.WaitForExit();
             }

        }

Я знаючто проблема вызвана методами, использующими разные процессы, но я не знаю, как заставить их использовать один, использующий блок

...