在编写windows 程序时,常会碰到消息的传送。 消息是放入消息队列的, windows 对消息的获取其实就是一个
while (..)语句, 不停的从消息队列中获取消息。 如果在单线程中,只有处理完当前消息时,windows才能去处理消息队列中的下一个消息。你的消息都不会中断正在执行的命令。所以如果在你的程序中,有一个消息命令会长时间执行的话,比如执行一分钟,那么在这个一分钟之内,你的其他所有消息都会失效,但是还存在消息队列中,只有等到长时间等待的程序执行完了,才开始继续执行你的下一个消息。 所以对于这种情况,我们可以采用多线程技术, 多线程是以时间片来分配cpu的,时间片大小为20ms,通过各个线程的优先级来分配cpu。 所以采用多线程,我们可以在处理复杂计算时,同时还可以处理用户的消息。。当然多线程带来方便的同时,也带来了效率上的降低(切换线程是需要时间的)。