Eso es porque mientras estás procesando consumes el tiempo de tu aplicación y no le da tiempo a procesar el repaint.
Si no quieres que ocurra, deberías utilizar varias hebras con distintas prioridades: Una para procesar los datos y otra para realizar el repintado. Seguramente pasará lo mismo si tienes un botón 'cancelar' y quieres pulsarlo: Al consumir el tiempo en el procesado de los datos, no conseguirás pulsar el botón. La solución es la misma: una hebra aparte donde controlar este click en el botón.
Suerte.
Silverfox