C++ utrata kontaktu z systemem

Napisałem ostatnio krótki program przy użyciu Borland c++ builder, który w pewnym momencie wykonuje niesłychanie długą pętlę. Problem mój polega na tym, że w trakcie wykonywania tej pentli zupełnie traci on kontakt z systemem… tzn., przestaje reagować na wciskanie buttonów… w momencie jak próbuję go zamknąć, to cały system zaczyna się walić… co powinienem dodać do jego kodu, żeby można go było wyłączyć nawet w trakcie działania tej pętli?

Powinieneś dodać obsługę zdarzeń :wink: No bo jak niby ma program reagować na kliknięcia w przycisk jeśli mu tego nie zaprogramujesz? :wink:

Daj może kod tego programu i co ma dokładnie robić bo może masz jakiś błąd, który powoduje wejście w nieskończoną pętlę a co za tym idzie obciążenie procesora.

Z tego co opisałeś wynika, że zwyczajnie zamarza Ci interfejs. Jak się domyślam, w tej pętli dokonywane są jakieś złożone obliczenia, które bardzo obciążają procesor. Albo w pętli dzieje się coś, co zawiesza program :slight_smile: Tak czy siak, żadne zdarzenia od przycisków nie będą wykonywane, bo procesor robi co innego. Aby tego uniknąć musisz uruchomić pętlę w innym wątku.

Poczytaj o programowaniu wielowątkowym.

somekind dobrze mówi, ale wydaje mi się, że raczej tu chodzi o nieodbieranie zdarzeń wysyłanych przez system. Nie wiem jak to w VCL jest, ale wydaje mi się, że prędzej tak jak ja powiedziałem.

Edit: Początek zdania to napisałem z dużej, już nie będę.

Ja wychodzę z założenia, że skoro “przestaje reagować na wciskanie buttonów”, to znaczy, że kiedyś reagował, więc i zdarzenia musiał mieć podpięte. Zobaczymy, jak się autor odezwie.

P.S. Fiołek - mała uwaga: somekind, a nie Somekind

dziękuję wszystkim za komentowanie mojego postu :slight_smile: już 2 osoby mi powiedziały o tym programowaniu wielowątkowym, toteż prawdopodobnie będę musiał się skłonić w tym kierunku…