Hallo,
ich schreibe gerade eine Messauswertesoftware um das Rauschen von Hochfrequenzverstärkern messen und darstellen zu können.
Für jede Messkurve werden rund 80 Einzelmessungen aufgenommen aus denen dann die Messwerte berechnet werden. Für jede Messung wird ein externes Messgerät entsprechend eingestellt.
Das Problem ist, dass das Erstellen einer Messkurve rund 5 Minuten dauert und wenn mehrere Messkurven hintereinander aufgenommen werden alles rund 30 Minuten dauern kann. Momentan wird während dieser Zeit die Software blockiert und auch der Bildschirm nicht aktualisiert. Das ist irgendwie sehr unschön...
Wie kann ich Prozesse im Hintergrund laufen lassen, die sich dann nur bei Erledigung ihrer Aufgabe wieder melden, damit ein nachfolgender Prozess (Messung) gestartet werden kann oder einfach nur der die Werte berechnet werden damit dann der Bildschirm aktualisert werden kann?
So wird momentan mein Messgerät angesteuert, wenn etwas eingestellt werden soll:
Dim proc As Process = New Process()
proc.StartInfo.FileName = Label_talk.Text
proc.StartInfo.Arguments = " 18 " & Chr(34) & "AT 0DB;SP 0HZ;" & AMPLITUDE & ";" & RESOLUTION_BW & ";" & VIDEO_BW & ";" & FREQUEMZ & ";" & SWEEP_TIMEms & Chr(34)
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
proc.Start()
proc.WaitForExit()
Zum Auslesen der Messwerte wird ein ähnliches externes Programm gestartet, welches die Messwerte in ein TXT-File speichert, welches dann später von meinem Programm ausgewertet werden muss.
Die große Frage ist, wie alles so im Hintergrund erfolgen kann, dass nichts blockiert wird.
Über eine Hilfestellung würde ich mich sehr freuen.
ich schreibe gerade eine Messauswertesoftware um das Rauschen von Hochfrequenzverstärkern messen und darstellen zu können.
Für jede Messkurve werden rund 80 Einzelmessungen aufgenommen aus denen dann die Messwerte berechnet werden. Für jede Messung wird ein externes Messgerät entsprechend eingestellt.
Das Problem ist, dass das Erstellen einer Messkurve rund 5 Minuten dauert und wenn mehrere Messkurven hintereinander aufgenommen werden alles rund 30 Minuten dauern kann. Momentan wird während dieser Zeit die Software blockiert und auch der Bildschirm nicht aktualisiert. Das ist irgendwie sehr unschön...
Wie kann ich Prozesse im Hintergrund laufen lassen, die sich dann nur bei Erledigung ihrer Aufgabe wieder melden, damit ein nachfolgender Prozess (Messung) gestartet werden kann oder einfach nur der die Werte berechnet werden damit dann der Bildschirm aktualisert werden kann?
So wird momentan mein Messgerät angesteuert, wenn etwas eingestellt werden soll:
Dim proc As Process = New Process()
proc.StartInfo.FileName = Label_talk.Text
proc.StartInfo.Arguments = " 18 " & Chr(34) & "AT 0DB;SP 0HZ;" & AMPLITUDE & ";" & RESOLUTION_BW & ";" & VIDEO_BW & ";" & FREQUEMZ & ";" & SWEEP_TIMEms & Chr(34)
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
proc.Start()
proc.WaitForExit()
Zum Auslesen der Messwerte wird ein ähnliches externes Programm gestartet, welches die Messwerte in ein TXT-File speichert, welches dann später von meinem Programm ausgewertet werden muss.
Die große Frage ist, wie alles so im Hintergrund erfolgen kann, dass nichts blockiert wird.
Über eine Hilfestellung würde ich mich sehr freuen.