Asynchroniczne wczytywanie danych

0

Witam,
mam problem z aplikacja J2ME łączącą się z aplikacją na serwerze. Z aplikacji J2ME wykonuje połączenie do aplikacji "serwerowej"(zwykła aplikacja z wykorzystaniem Socketow), poprzez utworzenie nowego wątku. Kod poniżej.

 
ServerConnection pol = new ServerConnection("localhost", Szperacz.this, 1, "0");
pol.start(); <-- utworzenie wątku, pobieranie opcji menu z bazy danych

listaTygodnikow = new List("Tygodniki lokalne", List.IMPLICIT, tygodniki, null);
listaTygodnikow.addCommand(getPowrotCommand());
listaTygodnikow.setCommandListener(this);

Kod ten aktualizuje mi zmienną String tygodniki która, przechowuje opcje MENU. Opcję tą dodaje przy tworzeniu okienka LIST.

I tu zaczyna się problem. Wykonanie wątku powoduje asynchroniczne wywołanie wątku i dalszą prace aplikacji J2ME. Ja chciałbym aby wszystko działo się synchronicznie...

gdy próbowałem wykonać połączenie Socketowe bez użycia wątku wywala błędy... jakieś sugestie?

Pozdrawiam

0

Praca asynchroniczna jest zazwyczaj bardziej korzystna w przypadkach gdy operacje są długotrwałe lub nie można przewidzieć czy i kiedy w ogóle się zakończą. Konieczność pracy synchronicznej zazwyczaj świadczy o wadliwym projekcie. Jeżeli jednak bardzo potrzebujesz, to po prostu zatrzymaj wątek do momentu otrzymania potwierdzenia wykonania operacji. Jednym ze sposobów jest wykonanie operacji Join na wątku, który operację wywołał (po tym jak wywołał) i tym, na którym może przyjść potwierdzenie wykonania. Dopóki potwierdzenie nie nadejdzie, to oryginalny wątek będzie sobie wisiał, więc efekt będzie identyczny z wywołaniem synchronicznym.

1 użytkowników online, w tym zalogowanych: 0, gości: 1