Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wątki
Konnekt | Forum > Developerzy > Tworzenie wtyczek
dulek000
1. Czy jeśli tworzę wątek przez cCtrl::BeginThread to muszę w nim wywoływać cCtrl::onThreadStart i cCtrl::onThreadEnd?
2. Da się zabić z zewnątrz wątek rozpoczęty przez cCtrl::BeginThreadAndWait?
3. Wątki nie są chyba automatycznie likwidowane wraz z IM_END programu, przez co dochodzi do nieciekawych krytyków związanych z dostępem do nieistniejących już zmiennych. Jak temu zaradzić? TerminateThread? Gdzie?
Trial
no tak patrze i ja mysle ze to jest blizej winapi albo "powinno byc"
wiec begin thread powinno przdypisac sobie tylko dana procedurke watku
a start i end powinny rozpoczynac prace watku i konczyc
wiec jak chcesz konczyc prace to chyba tego End daj..

nie wiem nie uzywalem... tego konnektowego tworzenia watkow

pozdro
hao
1) Nie musisz, a wręcz nie powinieneś. Wystarczy użyć samego BeginThread
2,3) cCtrl::BeginThread zachowuje się identycznie jak __beginthreadex, z tą jedną różnicą, że dla utworzonego wątku włącza przechwytywanie błędów. Utworzone tą drogą wątki obsługujesz więc zupełnie standardowo...

Przy okazji kAQQ chyba nie używa BeginThread, stąd brak przechwytywania krytyków. Nie ma to nic wspólnego z niekompatybilnością c++ smile.gif

2) BeginThreadAndWait nie jest najlepszym rozwiązaniem do wykorzystania. Chyba że jest to na prawdę uzasadnione. Do czego chcesz go wykorzystać?
3) Robisz własną obsługę wątków. Czyli zapamiętujesz w swojej aplikacji, które wątki uruchomiłeś, przy IM_END rozsyłasz sygnał/ustawiasz flagę, że wątki powinny się elegancko zakończyć, i czekasz aż wszystkie otwarte wątki zostaną zakończone.

O ile pamiętam przykład takiego kodu znajdziesz w kTransfer, dwutlenek chyba też ma coś podobnego...
dulek000
BeginThreadAndWait wykorzystuję gdy pobieram i parsuję kanały RSS - inaczej Konnekt by się "zapchał". Jak rozwiązać to inaczej? Przecież WaitForSingleObject także przywiesi Konnekta.
Trial
szczerze mowiac "jestem pod wplywem" wink.gif - popieram smile.gif

jak mozna zapchac program watkiem ?? nie wiem ??
ale jesli jest taka mozliwosc to coz to jest za program smile.gif

pozdrawiam
hao
Dulek - uruchamiasz swój proces w osobnym wątku przez BeginThread, wyświetlasz userowi ładne info ... Jak się zakończy - pokazujesz wyniki.
BeginThreadAndWait jest dla leniwych smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2012 Invision Power Services, Inc.