tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
473
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    ratbar ratbar ist offline Grünschnabel
    Registriert seit
    Jan 2011
    Beiträge
    2
    Hallo zusammen,

    ich habe da ein kleines Problem...

    Ich habe ein Programm das in zwei Threads per ExecutorService.execute() Daten einlesen. In den Threads wird dem Benutzer über ProgressMonitor der Fortschirtt der Aktion angezeigt. (Das ist auch der Grund warum ich das Einlesen in einen eigenen Thread ausgelagert habe).

    Das klapt auch sehr gut. Nur soll das Programm jetzt warten bis alle Daten eingelesen werden. Darauf warte das Programm wie folgt:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    ExecutorService1.shutdown();
    ExecutorService2.shutdown();
    while (!ExecutorService1.isTerminated() || !ExecutorService2.isTerminated()) {
      try {
        TimeUnit.SECONDS.sleep(1L);
      } catch (InterruptedException e1) {
        e1.printStackTrace();
      }
    }

    Dumm nur das damit wieder verhindert wird das der ProgressMonitor aufgefrischt wird und somit die Info für den Anwender futsch ist.

    Hat jemand einen Tipp für mich wie ich in der While- Schleife warten und gleichzeitig den Update des GUI's zulassen kann?

    Danke.
     

  2. #2
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    Auf jeden Fall solltest du den Event-Dispatching-Thread (in dem der obige Code offensichtlich ausgeführt wurde) niemals "schlafen legen". Stattdessen würde ich in den shutdown-Methoden der ExecutorServices jeweils AWT-Events in die AWT-Event-Queue "einschleußen" und dann anschließend diese Events per Listener abfangen und von der GUI verarbeiten lassen.
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  3. #3
    ratbar ratbar ist offline Grünschnabel
    Registriert seit
    Jan 2011
    Beiträge
    2
    Hallo genodeftest,

    danke für den Tipp, hat mich auf den richtigen Weg gebracht.

    Gruß
     

Ähnliche Themen

  1. Warten auf Thread ende
    Von MusiumInCapitiss im Forum .NET Café
    Antworten: 3
    Letzter Beitrag: 28.09.10, 16:58
  2. Warten von warten? *Konfusion*
    Von Cromon im Forum Smalltalk
    Antworten: 8
    Letzter Beitrag: 26.04.10, 16:04
  3. Auf das Ende eines Mc's warten
    Von pat_morita im Forum Flash Plattform
    Antworten: 14
    Letzter Beitrag: 06.06.07, 13:28
  4. Fragen: Threads und ExecutorService
    Von takidoso im Forum Java
    Antworten: 7
    Letzter Beitrag: 11.05.07, 16:08
  5. ExecutorService-Viele Threads nur x Laufen?
    Von junior0007 im Forum Java
    Antworten: 0
    Letzter Beitrag: 18.01.07, 10:43