Piszę program, który liczy ilość znaków w pliku (tzn. jest to jedna z jego funkcji).
Procedura licząca znaki jest osobnym wątkiem programu, wykonuje ona pętle, która zwiększa wartość odpowiedniej zmiennej w tablicy, równocześnie zwiększająć MainForm.Gauge1.Progress (czyli to samo co progressbar, tyle że z procentami).
Pętla jest wykonywana raz dla każdego znaku, czyli przy pliku o objętości 10 MB pętla zostanie wykonana 10 milionów razy.
I tu jest mój problem:
Kiedy pętla liczy duży plik, wszystko działa jak należy, liczenie znaków trwa około minuty i Gauge1 działa bez zarzutów.
Natomiast kiedy plik jest mały (np. 1000 bajtów), program generuje bład "EInvalidOperation with message 'Canvas does not allow drawing'"
Czy ktoś wie na czym polega ten błąd i jak mu zaradzić?
PS: mam nadzieje, że wszystko przejrzyście wyjaśniłem:)