You have libraries for multithreading. I use them myself for parallel tasks. However, how events and redrawing work is a completely different matter.