Summary
In this chapter, you learned how to use asynchronous and multi-threaded programming techniques to remove unresponsive behavior from your program. You learned how to work with and control Tkinter's event queue using the after() and update() methods, and how to apply these methods to solve problems in your application. You also learned how to use Python's threading module to run processes in the background, and how to utilize Queue objects to communicate between threads. Finally, you learned to use the Lock object to prevent shared resources from getting corrupted.
In the next chapter, we're going to explore the most powerful widget in Tkinter: the Canvas. We'll learn how to draw images and animate them, and create useful and informative charts.