Java & signalling [was: Re: Topic CrossConnect]

panos at linuxuk.com panos at linuxuk.com
Thu Oct 3 21:34:01 EEST 2002


03/10/2002 18:27:05, "Giorgos Keramidas" <keramida at FreeBSD.org> wrote:

>
>    Δεν θα έπρεπε να σε νοιάζει τι κάνουν τα system-specific
>    κομμάτια του περιβάλλοντος.
>

  Ακριβώς. Ο Ctrl-c συνδυασμός πλήκτρων στο Linux είναι μία διακοπή υψηλού επιπέδου και έχει ως
σκοπό να στείλει σήμα στο
shell ώστε να τερματίσει μία εφαρμογή (και κατ' επέκταση και όλες τις άλλες διεργασίες που
βασίζονται σε αυτή την εφαρμογή).
Δεν νομίζω να μπορείς να το χρησιμοποιήσεις αυτό στη Java για να σταματήσεις ένα συγκεκριμένο
thread και να τερματίσεις την
εφαρμογή σου ομαλά.

  Δεν μπορείς να χρησιμοποιήσεις έναν άλλο συνδυασμό; Αυτό που μπορείς να κάνεις είναι να
εγγράψεις ένα KeyListener με την
κλάση σου και όταν αυτός ο συνδυασμός συμβεί στείλε σήμα στη thread να σταματήσει.

  Κάτι σαν:

class MyClass implements KeyListener, Runnable
{
    private boolean running = true;

    public void run()
    {
        while(running)
        {
            // do stuff
        }
    }
    ...
    ...
    addKeyListener(this);
    ...
    public void kePressed(KeyEvent ke)
    {
       if (key combination we want)
         running = false;
    }
}





More information about the Linux-greek-users mailing list