Was ich habe:Wie reibungslos und korrekt in VB.NET?
Process.Start("powershell.exe", "-executionpolicy remotesigned -file C:\temp\test.ps1")
Do Until (ready = True)
If Process.GetProcessesByName("powershell").Length <> 0 Then
ready = False
Else
ready = True
End If
Loop
... more code ...
Derzeit mein Programm abstürzt, während Powershell aktiv ist. Wenn das Powershell-Skript zu lange dauert, mehr als 60 Sekunden, stürzt mein Programm ebenfalls ab. Wie es schließlich glatt macht, wie einen Timer zu verwenden, damit es nicht mehr einfriert.
EDIT:
Schließlich würde Ich mag alle 5 Sekunden überprüfen, ob Powershell aktiv ist.
EDIT 2:
Ich kann nur tun
Dim test As Process = Process.Start("powershell.exe", "-executionpolicy
remotesigned -file C:\temp\test.ps1")
test.WaitForExit()
Und es stürzt nicht mehr, aber es friert immer noch:/
Mögliche Duplikat [Warten Sie, bis ein Prozess endet] (http://stackoverflow.com/questions/3147911/wait-till-a-process-ends) –
Hinweis (nicht mit dem Problem): ' Während ready = False' und 'Do Until ready = True' dasselbe tun, müssen Sie nur einen von ihnen verwenden. –
Thx @Nico, sry für Flag Kommentar. Nach ein paar Versuchen hast du recht - es klappt nicht mehr nach 60 Sekunden, aber es friert immer noch während der Bearbeitung ein. Möglich das Frieren zu beheben? – hannir