kategoria: ANSI C
[#1] [C] Użycie Delay w funkcji Tasku
Cześć wszystkim,

Dalej koduje sobie mój program do rozpakowywania. Podstawowa funkcjonalość już jest szeroki uśmiech czyli archiwa sie rozpakowywują. Pozostał ostatni element układanki czyli GUI. No i właśnie podczas zabaw z GUI natknąłem się na dziwny problem. Otóż uznałem że najlepszym rozwiązaniem będzie uruchomienia samego rozpakowywania w osobnym tasku żeby nie blokować pętli głównej programu. I na początek zamiast samego rozpakowywania napisałem sobię zwykłą pętle while, która incrementuje wartość mojej zmiennej odpowiedzialnej za pozniejsze wyswietlanie tegoż postępu w postaci slidera. Żeby pętla nie wywoływała się zbyt szybko dodałem mały delay na jej końcu. Niestety gdy ten delay jest w kodzie to pętla wykonuje się raz i koniec. Gdy delaya nie ma iteracja dochodzi do końca. Problem mnie za bardzo nie dotknie bo kod rozpakowujacy nie używa Delay więc zapewne zadziała jak należy ale interesuje mnie czym to może być spowodowane.

Kod mojego programu wrzuciłem na github. Task tworzę tutaj a sama funkcja z pętlą jest tutaj. Czy ktoś spotkał się z podobnym problemem, albo może nie można stosować Delay w taskach (nigdzie takiej informacji nie znalazłem)?
[#2] Re: [C] Użycie Delay w funkcji Tasku

@jarokuczi, post #1

Najpierw wypadaloby przeniesc ustawianie czegos w GUI z tego watku. Czyli wysylanie wiadomosci do glownego watku, ktory by np aktualizowal GUI.
Czy jestes pewny ze nie wykonuje sie raz ale zawsze np bardzo szybko?
Dane masz z konsoli czy patrzysz na "suwak"?
[#3] Re: [C] Użycie Delay w funkcji Tasku

@jarokuczi, post #1

Być może problem wynika z tego, że funkcje dos.library w tym Delay() oczekują Procesu a nie Tasku. Proces jest rozszerzoną wersją Tasku, posiada m.in. standardowe wejście i wyjście.

Spróbuj zamiast CreateTask() zastosować CreateProc() lub CreateNewProc().
[#4] Re: [C] Użycie Delay w funkcji Tasku

@Hexmage960, post #3

Oh, "fopa". Dzieki za sprostowanie.
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem