|
| Tråd problem Fra : John Doe |
Dato : 19-05-03 19:30 |
|
Hej,
Jeg har følgende problem. Jeg starter en række tråde fra min klasse - la
os kalde den test - og vil så gerne ha tråden til arbejde med lidt data
for så at sætte en variabel i test klassen. Men hvordan gør jeg lige det.
Jeg har ikke adgang til variablen direkte fra min tråd og tråden kan vel
ikke returnere noget
/Dennis
| |
Jonas Zimling (19-05-2003)
| Kommentar Fra : Jonas Zimling |
Dato : 19-05-03 19:46 |
|
Hej Dennis
Prøv med noget i stil med:
-------------
public class Test{
private int variabel;
public Test(){
(new TestThread(this)),start();
}
public static void main(String args[]){
new Test();
}
public void setVarable(int pVariable){
this.variabel = pVariable;
}
}
public class TestThread extends Thread{
private Test mTest = null;
public TestThread(Test pTest){
this.mTest=pTest;
}
public void run(){
int i=0;
try{
//beregn i.
Thread.sleep(5000);
} catch (InterruptedException e){
e.printStackTrace();
}
mTest.setVarable(i);
}
}
-----------
Jeg har hverken testet eller kompileret det, så der kan være fejl - men
princippet bør være til at forstå.
Mvh
Jonas
"John Doe" <himmelhunden_99@yahoo.com> skrev i en meddelelse
news:pan.2003.05.19.18.29.47.672359@yahoo.com...
> Hej,
>
> Jeg har følgende problem. Jeg starter en række tråde fra min klasse - la
> os kalde den test - og vil så gerne ha tråden til arbejde med lidt data
> for så at sætte en variabel i test klassen. Men hvordan gør jeg lige det.
> Jeg har ikke adgang til variablen direkte fra min tråd og tråden kan vel
> ikke returnere noget
>
> /Dennis
| |
John Doe (19-05-2003)
| Kommentar Fra : John Doe |
Dato : 19-05-03 20:01 |
|
On Mon, 19 May 2003 20:46:24 +0200, Jonas Zimling wrote:
> Hej Dennis
>
> Prøv med noget i stil med:
*snip*
> Jeg har hverken testet eller kompileret det, så der kan være fejl - men
> princippet bør være til at forstå.
åååh så simpelt men alligevel så smukt .. jeg takker mange gange
/Dennis
| |
Rico Wind (19-05-2003)
| Kommentar Fra : Rico Wind |
Dato : 19-05-03 20:05 |
|
"John Doe" <himmelhunden_99@yahoo.com> skrev i en meddelelse
> Hej,
>
> Jeg har følgende problem. Jeg starter en række tråde fra min klasse - la
> os kalde den test - og vil så gerne ha tråden til arbejde med lidt data
> for så at sætte en variabel i test klassen. Men hvordan gør jeg lige det.
> Jeg har ikke adgang til variablen direkte fra min tråd og tråden kan vel
> ikke returnere noget
>
> /Dennis
Du kunne gøre som vist herunder, eller du kan evt oprette et objekt du
giver med.
Hvis du opretter et objekt som du giver med, kan du ændre på dette objekt i
tråden, og
det kan du så aflæse i din Test klasse.
public class Test{
private static int minVar = 10;
public static void main(String[] args){
Test t = new Test();
System.out.println("inden tråden startes er minVar " + minVar);
MinThread t1 = new MinThread(t);
t1.start();
try{t1.join();}catch(InterruptedException e){}
System.out.println("efter tråden er kørt er minVar: " + minVar);
}
public void setMinVar(int minVar){
this.minVar = minVar;
}
}
class MinThread extends Thread{
private Test test;
public MinThread(Test test){
this.test = test;
}
public synchronized void run(){
System.out.println("inden variabel sat");
test.setMinVar(11);
System.out.println("efter variabel sat");
}
}
| |
|
|