Hallo
Ich habe eine Klasse die eine aufwändige Kalkulation durchführt. Der Rahmen in dem das Programm läuft gibt allerdings eine maximale Laufzeit für die Kalkulation vor (eine Art Antwortzeit). Mein Ziel ist es nun die Kalkulation zur Not bei zu langer Laufzeit unterbrechen zu können und den aktuellen (vermeindlich besten) Wert zu nehmen.
Wie würde man das machen? Meine bisherige Überlegung ist folgende:
Ich baue um die kalkulationsklasse einen Wrapper der runnable implementiert und kann die Kalkulation so in einen eigenen Thread stecken.
Sobald die Kalkulation los gehen soll starte ich den Thread.
Die Klasse die den Thread started leitet die Klasse Timer ab und legt eine Timertask ab mit der vorgegebenen Anwortzeit. Diese Task besteht im Methodenaufruf gegen den Wrapper der Kalkulationsklasse die den aktuell kalkulierten Wert zurückgibt. Nachdem der Wert gelesen wurde wird der Thread gestoppt und das Kalkulationsobjekt neu initialisiert.
Soweit meine Gedanken hierzu. Evtl. werde ich noch etwas Pseudo-Code anfügen. Über Anregungen wäre ich dankbar, da ich glaube mit der bisherigen Idee nur in Probleme zu laufen.
Danke & Gruß
Oskar
Ich habe eine Klasse die eine aufwändige Kalkulation durchführt. Der Rahmen in dem das Programm läuft gibt allerdings eine maximale Laufzeit für die Kalkulation vor (eine Art Antwortzeit). Mein Ziel ist es nun die Kalkulation zur Not bei zu langer Laufzeit unterbrechen zu können und den aktuellen (vermeindlich besten) Wert zu nehmen.
Wie würde man das machen? Meine bisherige Überlegung ist folgende:
Ich baue um die kalkulationsklasse einen Wrapper der runnable implementiert und kann die Kalkulation so in einen eigenen Thread stecken.
Sobald die Kalkulation los gehen soll starte ich den Thread.
Die Klasse die den Thread started leitet die Klasse Timer ab und legt eine Timertask ab mit der vorgegebenen Anwortzeit. Diese Task besteht im Methodenaufruf gegen den Wrapper der Kalkulationsklasse die den aktuell kalkulierten Wert zurückgibt. Nachdem der Wert gelesen wurde wird der Thread gestoppt und das Kalkulationsobjekt neu initialisiert.
Soweit meine Gedanken hierzu. Evtl. werde ich noch etwas Pseudo-Code anfügen. Über Anregungen wäre ich dankbar, da ich glaube mit der bisherigen Idee nur in Probleme zu laufen.
Danke & Gruß
Oskar