Пакетный процесс в C # - PullRequest
1 голос
/ 16 мая 2011

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

Я использовал пакетный процесс как:

void batch_process(string process)
{
    try
    {
        string strFilePath = Path.Combine(batch_process_path, process);
        ProcessStartInfo psi = new ProcessStartInfo(strFilePath);
        psi.RedirectStandardOutput = true;
        psi.RedirectStandardError = true;
        psi.WorkingDirectory = batch_process_path;
        psi.WindowStyle = ProcessWindowStyle.Hidden;
        psi.UseShellExecute = false;
        psi.ErrorDialog = true;
    }
}

Как сделать этот тест?

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

Ответы [ 4 ]

2 голосов
/ 16 мая 2011

когда вы Start ваш новый процесс, вам нужно захватить возвращенный Process, который обеспечивает доступ к вновь запущенному процессу, полезный для запуска, остановки, управления и мониторинга приложений.

 Process exe = Process.Start(psi);
    ....

 if exe.HasExited() ....
1 голос
/ 16 мая 2011

Я немного не уверен в сценарии из вашего вопроса ... но вы можете использовать 4 метода:

В общем ... Я бы предпочел использовать Process.Exited, но другие методы тоже имеют свое место!

1 голос
/ 16 мая 2011

Сначала вы должны запустить процесс, используя ProcessStartInfo, который вы только что создали, как:

Process process = Process.Start(psi);

, затем вы можете использовать process.HasExited, чтобы проверить, завершился ли процесс. Зачастую вам не нужно этого делать, поскольку process.WaitForExit () блокирует код до завершения процесса.

1 голос
/ 16 мая 2011

Вы можете запустить процесс, используя

Process process = new Process();
string strFilePath = Path.Combine(batch_process_path, process);
process.StartInfo.FileName = strFilePath;

//this line will hold this thread until the process is done.
process.WaitForExit();

, затем запустить процесс в другом потоке и позволить этому потоку вызвать событие после выполнения process.WaitForExit();.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...