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

请参见

参考

AfxGetThread

概念

MFC宏和Globals