Thread Problem!!



  • Hi!

    Unter JDK 1.1.X

    Die Methode isInterrupted liefert nur false zurück!!

    Ich rufe vorher die methode interrupt() auf, um den Flag zusetzen.

    Die run() Methode wird aber nicht abgebrochen!!

    for(;;)
    {
    if(myThread.isInterrupted())
    {
    break;
    }
    do something
    }

    Außerhalb der Methode rufe ich myThread.interrupt() auf.

    Danke im Voraus 🙂



  • hmm...eine leere for-Schleife die dann gleich von einer bedingten break-Anweisung gefolgt wird, ist auch mal was neues:-)
    vielleicht liegt dein Problem daran, daß dein Thread im Schlaf erwischt worden ist (Thread.sleep() ) da wird nämlich ne InteruptedException ausgeworfen, bin mir nicht ganz sicher, aber ich glaub wenn diese Exception rausfliegt wird das Interupted-Flag wieder entfernt ... nuja falls du deinen Thread schlafen legst, mach das sinngemäß so, dann sollte es gehen:

    try
       { 
          Thread.sleep(666);
       }
       catch(InteruptedException e) {/*code zum Verlassen hier reintun/*}
    


  • Hi!

    Ich habe vergessen im catch Block interrupt aufzurufen!

    Danke 🙂

    public void kill()
    {
    myThread.interrupt();
    }

    public void run()
    {
    for(;;)
    {
    if(progressBarThread.isInterrupted())
    {
    break;
    }

    tue etwas ...

    try
    {
    Thread.sleep(150);
    }
    catch(InterruptedException ie)
    {
    kill();
    }
    }
    }


Anmelden zum Antworten