Как я могу предотвратить запуск приложения C # WPF дважды? - PullRequest
0 голосов
/ 22 мая 2018

У меня проблема с созданием приложения на C #;я использую proc.Start(); в качестве запуска другого приложения.Проблема в том, что этот метод запускает указанное приложение дважды.Я много заглядывал в сеть и не нашел хорошего ответа.Фрагмент кода:

using (Process proc = Process.Start(BotProcess))
{
    StatusLabel.Content = "Starting...";
    proc.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(process_OutputDataReceived);
    proc.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(process_ErrorDataReceived);
    proc.Start();
    StatusLabel.Content = "Running";
    proc.BeginOutputReadLine();
}

Когда он выполняется, в диспетчере задач я вижу 2 процесса указанных экземпляров, использующих proc.Start() в приложении.Как я могу это исправить?

1 Ответ

0 голосов
/ 22 мая 2018

Как было сказано в комментарии к комментарию, вы запускаете его один раз в присваивании оператора using, а затем снова на несколько строк вниз.

Вы хотите использовать конструктор по умолчанию, а затем установить то, что вынужно, тогда начни.Смотрите этот пример здесь (также вставлено ниже):

using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        public static void Main()
        {
            Process myProcess = new Process();

            try
            {
                myProcess.StartInfo.UseShellExecute = false;
                // You can start any process, HelloWorld is a do-nothing example.
                myProcess.StartInfo.FileName = "C:\\HelloWorld.exe";
                myProcess.StartInfo.CreateNoWindow = true;
                myProcess.Start();
                // This code assumes the process you are starting will terminate itself. 
                // Given that is is started without a window so you cannot terminate it 
                // on the desktop, it must terminate itself or you can do it programmatically
                // from this application using the Kill method.
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...