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
);
参数
pfnThreadProc
指向辅助线程的控件功能。 不能为 空。 必须声明此函数:UINT __cdecl MyControllingFunction( LPVOID pParam );
pThreadClass
从 CWinThread派生的对象的 RUNTIME_CLASS。pParam
将传递到控制函数的参数。如函数声明的参数所示。pfnThreadProc。nPriority
所需的线程优先级。 有关完整列表,以及可用的优先级的说明,请参见。Windows SDK的 SetThreadPriority。nStackSize
堆栈上的字节指定大小为新线程。 如果 0,堆栈大小默认为相同的堆栈大小与创建的线程。dwCreateFlags
指定控制线程的创建的其他标志。 此标志可以包含两个值之一:CREATE_SUSPENDED 开头挂起计数的线程一个。 请使用 CREATE_SUSPENDED,如果要初始化 CWinThread 对象的任何成员数据,如 m_bAutoDelete 或您的派生类的任何成员,线程开始运行之前。 一旦的初始化完成的,请使用 CWinThread::ResumeThread 启动线程运行。 线程不会执行,直到 CWinThread::ResumeThread 调用。
0 开始在创建后的线程。
lpSecurityAttrs
指向 SECURITY_ATTRIBUTES 指定线程的安全特性的结构。 如果,安全特性和创建的线程相同将使用 空。 有关此结构的更多信息,请参见 Windows SDK。
返回值
为新创建的线程对象的指针或 空,则失败。
备注
AfxBeginThread 的第一个窗体创建的辅助线程。 第二个窗体创建可用作作为用户界面线程或辅助线程的线程。
AfxBeginThread 创建新的 CWinThread 对象,调用其 CreateThread 函数开始执行线程,并返回指向线程。 在整个过程中进行检查,确保假如创建过程的任何部分出现故障,所有对象都能被正确地解除分配。 关闭线程,调用 AfxEndThread 从线程内或从辅助线程的控制函数返回。
必须由应用程序启用多线程;否则,此功能将失败。 有关启用多线程的更多信息,请参见 /MD、/MT、/LD(使用运行库) 在 Visual C++ 编译器选项。
有关 AfxBeginThread的更多信息,请参见位于 多线程:创建辅助线程 和 多线程:创建用户界面线程。
示例
为 CSocket::Attach参见示例。
要求
Header: afxwin.h