以下是 MFC 用户界面线程相关知识
由于用户界面线程含有自己的消息循环,可以出来 Windows 消息,并可创建和管理诸如窗口和控件等用户界面元素。因此,这种线程较工程线程更为复杂。
创建用户界面线程的起点是从 MFC 的 CWinThread 类派生一个定制的线程类,而不是调用 AfxBeginThread() 函数。定制的线程类必须重载 InitInstance() 函数,该函数用来执行初始化任务,在创建线程时系统将调用 InitInstance() 函数。最好还要重载 ExitInstance() 函数,该函数是 InitInstance() 函数的对应, MFC在删除线程对象之前会调用 ExitInstance() 函数,以便线程能够在结束后清除自身。
用户界面线程的创建有两种方法:
方法一:首先从 CWinThread 类派生一个类(必须要用宏 DECLARE_DYNCREATE 和 IMPLEMENT_DYNCREATE 对该类进行声明和实现),然后调用 AfxBeginThread() 创建 CWinThread 派生类的对象进行初始化,启动线程运行。
方法二:先通过构造函数创建派生类 CWinThread 的一个对象,然后由程序员调用函数 ::CreateThread 来启动线程。通常