Hi,
folgendes Problem: Meine Anwendung besitzt eine Textkonsole ähnlich wie in Eclipse, wo entsprechende Textausgaben gemacht werden. Leider bremst die Konsole die restliche Anwendung aus. Die eigentlichen Berechnungen laufen zwar in einem anderen Thread und werden davon nicht beeinflusst (sieht man an entsprechenden Timestamps in den Konsolenausgaben), aber die Ergebnisse werden in der GUI halt etwas verzögert ausgegeben.
Hier der entsprechende Code-Ausschnitt:
"display.asyncExec" ist eine Besonderheit von SWT und sollte euch nicht weiter stören. "protocolText" ist ein einfaches Textfeld.
Über Tipps oder Anregungen, was man hier optimieren könnte, würde ich mich freuen. Denn ich weiss nicht wirklich, wie man das anders lösen kann und im Netz finde ich auch nichts zu dem Thema.
folgendes Problem: Meine Anwendung besitzt eine Textkonsole ähnlich wie in Eclipse, wo entsprechende Textausgaben gemacht werden. Leider bremst die Konsole die restliche Anwendung aus. Die eigentlichen Berechnungen laufen zwar in einem anderen Thread und werden davon nicht beeinflusst (sieht man an entsprechenden Timestamps in den Konsolenausgaben), aber die Ergebnisse werden in der GUI halt etwas verzögert ausgegeben.
Hier der entsprechende Code-Ausschnitt:
Code:
final int bufferSize = 256;
final OutputStream out = new BufferedOutputStream(new OutputStream() {
@Override
public void write(final int b) {
display.asyncExec(new Runnable() {
public void run() {
protocolText.append(String.valueOf((char)b));
}
});
}
}, bufferSize);
System.setOut(new PrintStream(out));
"display.asyncExec" ist eine Besonderheit von SWT und sollte euch nicht weiter stören. "protocolText" ist ein einfaches Textfeld.
Über Tipps oder Anregungen, was man hier optimieren könnte, würde ich mich freuen. Denn ich weiss nicht wirklich, wie man das anders lösen kann und im Netz finde ich auch nichts zu dem Thema.