Ciao a tutti,
Il mio programma deve poter eseguire in sequenza determinati processi il che significa che da un Form1, premendo un pulsanti si avvia l'esecuzione di diverse subs (in sequenza) , ognuna che apre un processo e aspetta che esso termini prima di passare alla sub successiva.
La mia necessità è quella di poter interrompere il processo nel caso l'utente non voglia aspettare il completamento del processo avviato (che si chiude in automatico).
Quando definisco e avvio il processo, sospendo l'esecuzione del mio programma con il comando "Diagnostics.Process.WaitForExit()". Purtroppo però il mio programma diventa inattivo quindi non ho nessun pulsante attivo per poter eseguire il comando kill process.
Avete qualche soluzione da proporre?
Il codice che ho realizzato (che non assolve a quanto richiesto), ha un form1 dove viene lanciato l'avvio del processo e un form2 che viene visualizzato quando il processo è in esecuzione e contenente il pulsante per chiudere il processo in anticipo:
Dim run_simulation As New System.Diagnostics.Process
run_simulation .EnableRaisingEvents = True
run_simulation .StartInfo.WorkingDirectory = Form1.folder_work
run_simulation .StartInfo.FileName = "run_auto_simulation.bat"
run_simulation .StartInfo.WindowStyle = rocessWindowStyle.Minimized
run_adams.Start()
Form1.Cursor = Cursors.WaitCursor
'Form2 where there is Stop Button to kill run_simulation process
Form2.Show()
Form2.Focus()
run_simulation.WaitForExit()
Form1.Cursor = Cursors.Default
Potrei aprire il Form2 con un backgroundworker in modo che resti attivo per poter interrompere il processo "run_simulation"??