AfxBeginThread
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
);
返回值:指向新创建的线程对象的指针。
参数:
说明:
调用这个函数以创建一个新的线程。AfxBeginThread的第一种形式创建了一个工作线程。第二种形式创建了一个用户界面线程。
AfxBeginThread创建一个新的CWinThread对象,调用它的CreateThread函数以启动这个线程,并且返回这个线程的指针。整个过程都进行检查以保证如果创建失败,所有的对象都会被适当地释放。为了结束这个线程,可以在线程内调用AfxEndThread,或者从工作线程的控制函数内返回。
关于AfxBeginThread的更多信息,请参阅《Visual C++程序员指南》中的“多线程:创建工作线程”和“多线程:创建用户界面线程”。
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
);
返回值:指向新创建的线程对象的指针。
参数:
pfnThreadProc | 指向工作线程的控制函数。不能是NULL。这个函数必须按下面的方式定义: UINT MyControllingFunction( LPVOID pParam ); | ||||||
pThreadClass | 从CWinThread继承的对象的RUNTIME_CLASS。 | ||||||
pParam | 将要传送给控制函数的参数,如pfnThreadProc中定义的函数参数所示。 | ||||||
nPriority | 设定的线程的优先级。如果为0,则使用与创建它线程相同的优先级。在《Win32程序员参考》的“SetThreadPriority”中有可用的优先级的完整列表和描述。 | ||||||
nStackSize | 指定新线程使用的栈的以字节为单位的大小。如果为0,则缺省的栈大小与创建它的线程的栈大小相同。 | ||||||
dwCreateFlags | 指定控制线程的创建过程的附加标志。这个标志可以是两个值之一:
| ||||||
lpSecurityAttrs | 指向一个SECURITY_ATTRIBUTES结构,它指定了线程的安全特性。如果为空,将使用与创建它的线程相同的安全特性。如果需要获得有关这个结构的详细信息,请参阅《Win32程序员参考手册》。 |
说明:
调用这个函数以创建一个新的线程。AfxBeginThread的第一种形式创建了一个工作线程。第二种形式创建了一个用户界面线程。
AfxBeginThread创建一个新的CWinThread对象,调用它的CreateThread函数以启动这个线程,并且返回这个线程的指针。整个过程都进行检查以保证如果创建失败,所有的对象都会被适当地释放。为了结束这个线程,可以在线程内调用AfxEndThread,或者从工作线程的控制函数内返回。
关于AfxBeginThread的更多信息,请参阅《Visual C++程序员指南》中的“多线程:创建工作线程”和“多线程:创建用户界面线程”。