A much better strategy would be to launch a (single ...) background thread to recompute the bitmap, then signal you by some means that the computation is done so that you can in one step replace the existing bitmap with the recomputed one. Your present strategy will, at best, make the display look very strange for about 30 seconds, and take a whole lot longer due to Tk overhead.