Currently the program is single-threaded. Due to the sequential nature of events, the scope for multi-threading is limited. Also, multi-threading is complex and can create difficult to pin down bugs, so there needs to be sufficient upside to go down that route.
Having said that, if I find an area that has performance issues and has potential for multi-threading, I will look into it at that point.