Προς το περιεχόμενο

Πρόβλημα με threads...java


giannibrase

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σας

 

αντιμετωπίζω ένα πρόβλημα στην πτυχιακή μου και χρειάζομαι βοήθεια...

Στην ουσία έχω ένα applet με κουμπιά, πατώντας ένα κουμπί τρέχω έναν αλγόριθμο από μια κλάση Χ,η οποία ζωγραφίζει πάνω στο applet,σταματάει για λίγο (Thread.sleep( ) ), και μετά συνεχίζει ο αλγόριθμος,ξανασταματάει κτλ...

Θέλω τώρα,την ώρα που σταματάει και κάνει sleep o αλγόριθμος,εγώ πατώντας ένα άλλο κουμπί πάνω στο applet να κάνω "Pause" τον αλγόριθμο και όποτε ξαναπατήσω να συνεχίσει...

Αυτό που παρατηρώ,είναι ότι όταν τρέχει ο Χ το applet μου κοκκαλώνει,δεν πατιέται κανένα κουμπί ούτε κάτι άλλο διαδραστικό που έχω πάνω στο applet μου...

Η Χ επεκτείνει τη διασύνδεση Runnable, και ο κώδικας που κάνει την δουλειά είναι μέσα στη run()...

Δοκίμασα επίσης και wait(),και πατώντας το κουμπί Pause να γίνεται notify(),αλλά όπως έιπα,την ώρα που τρέχει ο Χ δεν πατιέται τίποτα στο applet μου.

 

Ευχαριστώ

Δημοσ.

όχι,δε δουλεύω με swing ...

Όλα είναι awt στο applet μου. Θα προτιμούσα να το κάνω με νήματα πάντως, αφού μου το ζήτησε και ο καθηγητής....

Δημοσ.

Το ότι ο αλγόριθμος βρίσκεται μέσα στην run() μιας κλάσης που κάνει implement την Runnable δεν λέει τίποτα. Μέσα στον κώδικά σου καλείς ποτέ το εξής?

 

X x = new X();

Thread thread = new Thread(x);

thread.start();

 

όπου Χ κάνει implement το Runnable

ή πιο σύντομα

 

new Thread(new X()).start();

 

Μόνο έτσι ξεκινάς νέο thread ώστε να μην κρεμάει το gui.

Δημοσ.

Πρόταση: φιάξε ένα thread που να τρέχει το gui, και ένα άλλο thread που να τρέχει τον αλγόριθμο, έτσι ώστε να έιναι ανεξάρτητα.

Δημοσ.
Πρόταση: φιάξε ένα thread που να τρέχει το gui, και ένα άλλο thread που να τρέχει τον αλγόριθμο, έτσι ώστε να έιναι ανεξάρτητα.

 

Αυτό του είπα και εγώ παραπάνω. Όταν κάνεις κλικ ένα κουμπί ο handler τρέχει στο ίδιο thread με το gui. Οπότε μέσα στον handler πρέπει να ξεκινήσει νέο thread.

Δημοσ.
Αυτό του είπα και εγώ παραπάνω. Όταν κάνεις κλικ ένα κουμπί ο handler τρέχει στο ίδιο thread με το gui. Οπότε μέσα στον handler πρέπει να ξεκινήσει νέο thread.

 

Όχι ακριβώς το ίδιο: Εγω εννοώ να φτιαχτούν απο την αρχή δυο thread. Όχι οτι η δική μου λύση έιναι καλύτερη, απλά έχει διαφορετικό σχεδιασμό στην υλοποίηση.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...