Aktualizacja okna, argumenty linii komend

0

Witam.

Piszę sobie program z wykorzystaniem Allegro WebAPI (ale to akurat chyba nie jest istotne).

Kawałek kodu - procedury obsługi naciśnięcia przycisku:

//blablabla, nieistotne.....
    service = new AllegroWebApiService();
    try
    {
        sessionHandle = service.doLogin(/*parametry*/);
        aukcje = service.doMyAccount2(/*parametry*/);
    }
    catch 
    {
        return;
    }

Program się wykonuje, i działa tak jak trzeba. Problem polega na tym, że wywołanie metod doLogin i doMyAccount2 trwa dosyć długo (w porywach 5-10 sekund), a w tym czasie program nie odpowiada. Chciałem więc jakoś "uspokoić" użytkownika, i wyświetlać w tym czasie jakieś uspokajające komunikaty. Stworzyłem ListBox - "logLBx". Kawałek poprawionego kodu:

try
{
    logLBx.Items.Add("Logowanie... ");
    sessionHandle = service.doLogin(/*parametry*/);
    logLBx.Items.Add("\t\tOK");
}
catch 
{
    logLBx.Items.Add("BŁĄD!");
    return;
}

logLBx.Items.Add( "Pobieranie aukcji... ");
try
{
    aukcje = service.doMyAccount2(/*parametry*/);
    logLBx.Items.Add("\t\tOK");
} 
catch
{
    logLBx.Items.Add("Błąd!");
    return;
}

Według mojego oczekiwania - powinno to teraz wyglądać:

  1. Klikamy przycisk
  2. Widzimy napis "Logowanie..."
  3. Czekamy...
  4. Widzimy napisy "OK", "Pobieranie aukcji"
  5. Czekamy...
  6. Widzimy napis "OK".

Tymczasem odbywa się to tak:

  1. Klikamy przycisk
  2. Czekamy
  3. Czekamy
  4. Widzimy napisy: "Logowanie" "OK" "Pobieranie aukcji" "OK".

Co oczywiście kompletnie mija się z celem.

PYTANIE 1:
Przypuszczam, że te komunikaty są gdzieś buforowane (?), i dlatego wyświetlają się wszystkie na raz. Co zrobić, aby wyświetlały się wtedy, gdy to jest wyznaczone w kodzie?

PYTANIE 2:
W jaki sposób w C#, pisząc aplikację okienkową mogę odebrać parametry przekazane do aplikacji za pośrednictwem linii komend?

0
  1. Na moj gust to wyswietlaja sie w porzadku. ALE okienko zajete jest jakims zadaniem (czyli wywolaniem dlugotrwalej procedury), wiec nie ma czasu, zeby sie odswiezyc. Odswieza jak skonczy zadanie - dlatego widzisz na koncu. Wywoluj obie metody w watku i przekaz referencje do okna. Po skonczeniu pierwszej i drugiej metody poprosisz okienko o dodanie 'OK'. A okienko w swoim watku bedzie sie odswiezalo tak jak zawsze ;)
0

Dziękuję. Już z grubsza rozumiem, muszę tylko poczytać o aplikacjach wielowątkowych :).

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