线程创建函数如下:
CWinThread* AfxBeginThread( AFX_THREADPROC pfnThreadProc, LPVOID pParam, int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL );
CWinThread* AfxBeginThread( CRuntimeClass* pThreadClass, int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL );
前者是创建一个work线程,后者创建一个UI线程。
线程的主要区别见:
http://blog.csdn.net/sd2131512/article/details/6601228
里面介绍说:
在MFC中把线程分为两类,一类为界面线程,一类为工作线程。两者的区别在于前都能够处理消息响应,而后者则不能。
可以确定的是UI线程是可以处理消息的。但是工作线程似乎有一个线程函数来工作。
具体的讨论也可以参考一下帖子:
http://topic.csdn.net/u/20100122/11/5efdf7d6-b53a-4e90-8c2f-afcff2387711.html
经典发言总结如下:
UI线程处理消息,比如重绘,响应键盘鼠标等等跟消息有关的处理。而工作线程一般是你自己写的用来处理数据的,比如操作数据库等等。