[ mvasicdo @ 18.10.2007. 07:47 ] @
pozdrav.

Moze li mi neko objasniti zasto ovo ne radi:

Imam jednu MIDlet klasu u kojoj sam kreirao meni i klikom na stavku u njemu treba da mi inicijalizuje drugu klasu koja je tipa Thread, npr.
int index = menu.getSelectedIndex();
switch(index) {
case 0 :
MyThread t = new MyThread ();
t.start();
break;
case 1:
break;
case 2:
break;
//.......................
//.......................

U klasi MyThread vrsi se konekcija na server aplikaciju (JSP) koja vraca podatke iz baze.
Te podatke MyThread ucitava u RecordStore.

Mene sada "zeza" to sto ne mogu odmah poslije startovanja MyThread-a da procitam podatke iz RecordStore. tj. treba mi ovo:
int index = menu.getSelectedIndex();
switch(index) {
case 0 :
MyThread t = new MyThread ();
t.start();
//OVDJE TREBA DA BUDU METODE ZA CITANJE IZ RecordStore
break;
case 1:
break;
case 2:
break;
//.......................
//.......................

Jos da napomenem da ako drugi put kliknem na stavku za ucitavanje MyThread-a sve mi proradi, ili ako stavim ucitavanje MyThread-a na drugu stavku u meniju, opet radi.

Evo dio kako sam kreirao MyThread:

public class MyThread extends Thread{
public MyThread(){}
public void run(){
//OVDJE IDE DIO ZA KONEKTOVANJE NA JSP I UCITAVANJE REKORDA U RecordStore
}
}
[ rj444 @ 18.10.2007. 11:32 ] @
Nisam se mnogo udubljivao u kod iz razloga sto nisi stavio code tagove.

Ovako, na prvu loptu mi se cini da treba da sacekas da taj thread zavrsi posao, sto znaci da iza
Code:
 t.start() 
ide
Code:
 t.join() 
gde se ceka da thread zavrsi sa metodom run.

Pozdrav,
Rade
[ lukeguy @ 18.10.2007. 22:09 ] @
I meni se čini da pokušaš da pokupiš podatke pre nego ih thread pribavi.

Mada ako ćeš pokretati thread da uzme podatke, a u međuvremenu pauzirati glavni program, ne vidim poentu korišćenja thread-a. Thread koristiš za paralelnu obradu, u ovom slučaju asinhrono dobavljanje podataka. Ako to imaš na umu, onda taj tvoj thread treba da signalizira nekome (nekoj klasi) da su podaci spremni i tek onda da se izvrši kôd za učitavanje podataka. Znači koristiš sinhronizaciju. U međuvremenu klijentu prikažeš poruku: "Učitavanje u toku..." ili nešto slično.

Ovo je neka osnovna ideja.