Hallo Leute!
Ich beschäftige mich gerade mit GUI-Programmierung in SWT und habe eine Frage bzgl. des Threadings.
Ich habe ein Programm der Art:
und ne Klasse MainView:
Jetzt habe ich folgendes Problem:
Ich führe meine MainClass aus, die initialisiert einen Logger, Verbindugnen zur Datenbank etc. Jetzt ist es aber so, dass der Main-Thread auch von der GUI benutzt wird (durch
). D.h. zu
komme ich erst, wenn die
disposed ist..
Meine Frage ist, wie ich dies -als Best Practice- löse.
Ich könnte die GUI in einen eigenen Thread auslagern. So z.B.:
Ist das eine "gute" Lösung, oder wie würdet ihr in der Situation vorgehen??
Danke für Eure Hilfe!
Ich beschäftige mich gerade mit GUI-Programmierung in SWT und habe eine Frage bzgl. des Threadings.
Ich habe ein Programm der Art:
Java:
public class MainClass {
private static void initGUI() {
new MainView().open();
System.out.println("Logger: GUI erfolgreich initiiert");
}
public static void main(String[] args) {
new MainClass().initGUI();
}
}
und ne Klasse MainView:
Java:
public class MainView {
//...
public void open() {
Display display = Display.getDefault();
createContents();
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
}
// ...
}
Jetzt habe ich folgendes Problem:
Ich führe meine MainClass aus, die initialisiert einen Logger, Verbindugnen zur Datenbank etc. Jetzt ist es aber so, dass der Main-Thread auch von der GUI benutzt wird (durch
Java:
Display.getDefault()
Java:
System.out.println("Logger: GUI erfolgreich initiiert");
Java:
Shell
Meine Frage ist, wie ich dies -als Best Practice- löse.
Ich könnte die GUI in einen eigenen Thread auslagern. So z.B.:
Java:
public void open() {
new Thread() {
@Override
public void run() {
Display display = Display.getDefault();
createContents();
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
}
}.start();
}
Ist das eine "gute" Lösung, oder wie würdet ihr in der Situation vorgehen??
Danke für Eure Hilfe!