Wątki - wielokrotne uruchamianie problem z wydajnością

0

Siemanko, mam program który szuka informacji na 8 stronkach w 8 wątkach na raz.
Wszystko działa dobrze gdyby nie fakt że z każdym następnym uruchamianiem drastycznie wzrasta użycie procesora aż w końcu za około 5 razem system strasznie spowalnia, praktycznie staje. Czy ktoś spotkał się z taką sytuacją? Wszelkie klasy sa zwalniane w onTerminate po zakończeniu wątku.

Wszystko co trzeba zwalniam. Pamięć po wykonaniu wątku wraca do normy.

Druga sprawa to przed uruchomieniem sprawdzam czy zmienna klasy wątku jest nil i jak nie jest to ją zwalniam poprzez Freeandnil();
Wątek odpalam w taki sposób:

zmiennawatek := watek.tSzukaj.Create(false);

Kiedy chcę zwolnić zmiennawatek za drugim razem to kompilator wywala błąd. Zupełnie nie wiem dlaczego, zmiennawatek jest różna od nil.

Edit: Systemowy monitor zasobów pokazuje że wątki są zwalniane. Pamięć także a użycie procesora sie nie zmniejsza.

0
Legalnl napisał(a)

Wszelkie klasy sa zwalniane w onTerminate

źle - do zwalniania obiektów, które należą do wątku służy destruktor. Do zwalniania wątku służy ustawienie zmiennej FreeOnTerminate na true. Co do zużycia procesora to na 99,99% masz zrąbaną główną pętlę wątku. Daj więcej kodu

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