在 MFC 中,CWinThread 类确实有一个名为 InitInstance 的公共方法,用于执行线程的初始化操作。这个方法在线程被创建后,在线程的执行函数之前被调用,通常用于进行线程的初始化工作。

以下是一个简单的示例:
// 假设你的应用程序类为 CMyApp,线程类为 CMyThread
#include "CMyApp.h"
#include "CMyThread.h"

BOOL CMyApp::InitInstance()
{
    // 创建并运行新线程
    CMyThread* pThread = (CMyThread*)AfxBeginThread(RUNTIME_CLASS(CMyThread));

    // 其他初始化工作...

    return TRUE;
}

BOOL CMyThread::InitInstance()
{
    // 在线程初始化时执行操作

    // 示例:输出一条消息
    TRACE(_T("Thread Initialized!\n"));

    return CWinThread::InitInstance();
}

void CMyThread::SomeThreadFunction()
{
    // 在线程函数中执行其他操作...
}


在上述代码中,CWinThread::InitInstance 方法用于在线程被创建后执行初始化操作。在 CMyThread 类的 InitInstance 方法中,你可以添加自定义的初始化代码,例如输出一条消息、设置初始状态等。

请注意,InitInstance 方法是一个虚拟函数,因此你可以在你派生的线程类中重载它,以满足具体的需求。在 InitInstance 的末尾,通常会调用基类的 InitInstance,以确保 MFC 执行默认的初始化操作。


转载请注明出处:http://www.zyzy.cn/article/detail/23227/MFC/CWinThread