Mein erster Gedanke wäre da Multithreading - du läßt das Bild in einem separaten Thread durchrechnen, der sich dann irgendwann zurückmeldet. Wenn du Anzeige- und Berechnungslogik voneinander trennst können sie sich nicht (ganz so leicht) gegenseitig auf die Füße treten.