2016-06-15 5 views
0

Я создал приложение, которое открывает filedialog при нажатии кнопки обзора, и я могу выбрать до 5 exe, и когда я нажимаю кнопку запуска, он запускает их все в в то же время. Простое право?Открытие и закрытие EXE-файлов с помощью C# с таймером. NET

Мне нужно это сделать, когда я нажимаю кнопку запуска, он запускает программное обеспечение, но он закрывает их снова после определенного количества времени, и он получает это время от пользователей valie, которые они вводят в текстовое поле. знать, как подключить Process.Start (имя_файла) к таймеру с текстовыми полями и таймером.

Как бы я построил структуру для этого? i.e

Создать таймер.
используйте интервал таймера, чтобы установить определенное количество миллисекунд.
подключить таймер с кодом

То, как я вижу, приложение строится, я собирался карапуз RY его, но не знал, с чего начать.

This is what the application looks like

+0

Я думаю, что все, что вы описали выполнимо. Начните с основ, переломите проблему на более мелкие куски и попробуйте запрограммировать свои идеи. – Alex

ответ

2

Да, пусть запустить таймер, а затем после х миллисекунд, выпуск Process.Kill им.

Вы также можете сделать что-то вроде следующего, используя отдельные потоки для каждого:

Task.Run(() => 
{ 
    // start the process and keep track of it 
    var theProcess = Proces.Start(one of the porcesses); 

    // sleep for your desired number of milliseconds. 
    Thread.Sleep(5000); 

    // end the process (violently :) 
    theProcess.Kill(); 
}); 

Если у вас есть EXEs в списке, вы также можете сделать аналогичные приведенным выше, с Parallel.ForEach() :

Parallel.ForEach(filenames, (file) => 
{ 
    var theProcess = Process.Start(file); 
    Thread.Sleep(5000); 
    theProcess.Kill(); 
}); 
+0

Я вижу, откуда вы, но как мне подключить интервал ввода пользователей к программному обеспечению, я делаю что-то вроде timer.interval(); может быть? – JonathanCoal

+0

@JonathanCoal Да, простой таймер будет работать. http://www.dotnetperls.com/timer – CathalMF

+0

@Joehl я постоянно получаю ошибку не может преобразовать строку в целое из этого частной недействительным Timer1_Tick (объект отправителя, EventArgs е) { вар firstProcess = Process.Start (textBoxFirst .Текст); Thread.Sleep (MinTextBoxFirst.Text); } – JonathanCoal

Смежные вопросы