Hallo
Ich habe wieder einmal ein Problem mit dem Backgroundworker.
Da ich in einem Programm einen großen Haufen Berechnungen durchzuführen habe, und aber gleichzeitig am aktiven Programmm arbeiten möchte, habe ich die Berechnungen mit Hilfe von einem Backgroundworker in einen neuen Prozess gebracht, damit sie so im Hintergrund ausgeführt werden.
Da ich aber zu den Berechnungen natürlich eine Menge Eingaben, z.B. aus Textboxen, aus der Programm-Form benötige, muss ich diese dem Backgroundworker irgendwie übermitteln. Direkt auslesen kann er sie ja nicht, da dieser auf einem anderen Prozess läuft.
Meine derzeitige und einzige Lösung, die mir einfällt, ist, dass die Daten vor dem Starten des Backgroundworkers in eine Textdatei gespeichert werden, und diese zu Beginn vom neuen Prozess ausgelesen werden.
Genauso ist es umgekehrt auch. Da die einzelne Ergebnisse der Berechnungen in Echtzeit angezeigt werden sollen (Anzahl der Durchgeführten Berechnungen, Prozentanteil, Welcher Schritt ist gerade in Bearbeitung, ...), werden diese Daten regelmäßig vom Backgroundworker-Prozess in eine Textdatei gespeichert und durch einen Timer wird diese Textdatei vom aktivem Programm jede Sekunde ausgelesen.
Meine Frage nun, ob man dies eleganter machen könnte, und vor allem wie?
Meine Lösung mit Textdateien die regelmäßig geschrieben und ausgelesen werden finde ich ziehmlich unelegant.
Danke für eure Bemühungen im Voraus
Piakob
Ich habe wieder einmal ein Problem mit dem Backgroundworker.
Da ich in einem Programm einen großen Haufen Berechnungen durchzuführen habe, und aber gleichzeitig am aktiven Programmm arbeiten möchte, habe ich die Berechnungen mit Hilfe von einem Backgroundworker in einen neuen Prozess gebracht, damit sie so im Hintergrund ausgeführt werden.
Da ich aber zu den Berechnungen natürlich eine Menge Eingaben, z.B. aus Textboxen, aus der Programm-Form benötige, muss ich diese dem Backgroundworker irgendwie übermitteln. Direkt auslesen kann er sie ja nicht, da dieser auf einem anderen Prozess läuft.
Meine derzeitige und einzige Lösung, die mir einfällt, ist, dass die Daten vor dem Starten des Backgroundworkers in eine Textdatei gespeichert werden, und diese zu Beginn vom neuen Prozess ausgelesen werden.
Genauso ist es umgekehrt auch. Da die einzelne Ergebnisse der Berechnungen in Echtzeit angezeigt werden sollen (Anzahl der Durchgeführten Berechnungen, Prozentanteil, Welcher Schritt ist gerade in Bearbeitung, ...), werden diese Daten regelmäßig vom Backgroundworker-Prozess in eine Textdatei gespeichert und durch einen Timer wird diese Textdatei vom aktivem Programm jede Sekunde ausgelesen.
Meine Frage nun, ob man dies eleganter machen könnte, und vor allem wie?
Meine Lösung mit Textdateien die regelmäßig geschrieben und ausgelesen werden finde ich ziehmlich unelegant.
Danke für eure Bemühungen im Voraus
Piakob
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Piakob“ ()