我觉得CreateThread函数也应当可以生成两种线程,因为afxBeginThread实际上就是调用了CWinThread的构造函数和CreateThread两个函数。
user-interface线程中OnIdle一般的工作应当是在线程的消息队列为空的时候进行的。但是如果需要处理复杂的工作,则不应重载OnIdle.而在Run里面则进行消息循环的处理,一般来说应当使用默认的消息循环为好。我不知道自己做消息循环能不能考虑得非常周全。
但是如果是worker threads,因为不存在消息循环,所以就可以重载RUN。
如果是user-interface线程,那么自己的工作应当在消息处理函数中完成。