I think that anyone who has ever done any GUI programming for a day-to-day application that empowers people to do their job, regardless of the language or environment, will fully agree with me when I say: “end-users are never satisfied.” End-users do not want to click a button and have their GUI freeze up because your application is crunching data on your main program thread. Enter multi-threading. I do not claim to be anything close to an authority...