14. april 2008 - 17:23Der er
4 kommentarer og 1 løsning
Kald funktion i tråd
Jeg sidder og arbejder på et program, men er imidlertid stødt på et problem, jeg ikke rigtig kan finde en løsning på. Mit program er flertrådet og jeg mangler en måde, at kalde en funktion i en bestemt tråd.
Eksempelkode: public class TestClass extends Thread { public MyPanel MyJPanel = new MyJPanel();
public void TestClass() { }
public void funktion() { // Udfør noget } }
public class MyJPanel extends JPanel { public void MyJPanel() { }
public void doSomething() { // Fra denne funktion ønsker jeg at kalde funktion() i TestClass, // men da TestClass er en tråd, kan jeg ikke finde ud af, hvordan // jeg får fat i den TestClass som det pågældende MyJPanel er // defineret som variabel i. } }
Altså, hvis jeg laver min funktion() static og bare kalder den med TestClass.funktion() så får jeg bare fat i den sidst oprettede tråd, og ikke den som det pågældende MyJPanel er defineret i. Håber i forstår, ellers må i endelig sige til!
Hvis man snakker interface (visuelt) så er tråd-kommunikationen givet, som Arne skriver...
Men hvis man laver asynkrone tråde (på anden måde), så skal trådene deles om et object: en Queue (kø) af beskeder... trådene deles om at læse beskederne (i lock'ed tilstand)...
Med mindre man operere med interrupts... som kan være lidt destruktiv for tråden...
sådan husker jeg det... Men Arne == Gud, når det gælder Java :D
Umiddelbart ser det ud til at virke. Synes ellers jeg selv havde prøvet den løsning, men må åbenbart have gjort noget forkert :) Smid et svar, så er der point, arne_v.
montago: Er slet ikke så meget inde i det. Jeg har bare programmering som valgfag på skolen, såå ;)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.