Your solution works just fine.
But I think I'm going to adopt the POE framework for this project. I create one POE session to read an input and another one to integrate that input to my Tk Canvas.
I cannot give more details because I'm still learning how to set up POE environment.
But It seems to be a really promising way. You don't need to know in the low level how to corporate different tasks in the same time, POE takes care of that for you.