选择的是MFC.exe项目  在OnInitDialog()函数中
HThread=AfxBeginThread(ThreadFun,NULL,CREATE_SUSPENDED,0,0,NULL);
UINT ThreadFun(LPVOID LPARAM)
{
int Count=0;
char Temp[100];
while(1)
{
if(flag)
{
Count++;
sprintf(Temp,"%d",Count);
SetDlgItemText(AfxGetApp()->m_pMainWnd->m_hWnd,IDC_EDIT1,Temp);
}
}
return 0;
}还没调用ResumeThread(HThread);  就开始执行了  另外挂起的话 程序也一直在跑  线程挂起的话,线程下的程序不是应该停止了吗

解决方案 »

  1.   

    serialProcess = (SerialThread*)AfxBeginThread(RUNTIME_CLASS(SerialThread),THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
      

  2.   

    就创建了一个线程,然后让他不停的数数。 刚开始设置为
    HThread=AfxBeginThread(ThreadFun,NULL,0,0,0,NULL);的时候是一运行就开始跑
    但是看函数介绍改成
    HThread=AfxBeginThread(ThreadFun,NULL,CREATE_SUSPENDED,0,0,NULL);
    应该是
    调用ResumeThread(HThread); 才开始跑
    求解  先谢谢大家了
      

  3.   

    serialProcess = (SerialThread*)AfxBeginThread(RUNTIME_CLASS(SerialThread),THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
      

  4.   

    CWinThread* AfxBeginThread( AFX_THREADPROC pfnThreadProc, LPVOID pParam, int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL );
    注意参数
      

  5.   

    谢谢你,是我没看清  但是现在还有个问题 挂起后。我添加了一个开始按钮  里面输入
    ResumeThread(HThread);
    线程开启不了 是什么原因啊?
      

  6.   

    同样的  若线程开启后  一直在记数累加  但是停止按钮下 SuspendThread(HThread);也不能挂起  还是继续加
      

  7.   

    AfxBeginThread返回的是CWinThread* 
    用HThread->ResumeThread() 或 ResumeThread(HThread->m_hThread);
      

  8.   

    if(flag)
    这个flag没处理对,
    试试 volatile BOOL flag;
      

  9.   

    按照你这个 提示错误是
    left of '->ResumeThread' must point to class/struct/union
      

  10.   


    初始化的时候已经是true了 
    而且ResumeThread(HThread);前也加了flag=True;
    应该是线程没启动吧
      

  11.   

    // set thread "Watch Read" includes 2 events EV_CTS and EV_RXCHAR
    if (m_bConnected)  
    {
    if ((m_pThreadRead=AfxBeginThread(CommWatchRead,this))==NULL)
    {
    AfxMessageBox("Create thread CommWatchRead() failed !",MB_ICONSTOP);
    m_bConnected=FALSE;
    this->EndDialog(0);
    return TRUE;
    }
    else
    {
    m_pThreadRead->SetThreadPriority(THREAD_PRIORITY_NORMAL);
    m_pThreadRead->ResumeThread();

    }
    }
      

  12.   

    // start comm watching
    //
    BOOL CSerialPort::StartMonitoring()
    {
    if (!(m_Thread = AfxBeginThread(CommThread, this)))
    return FALSE;
    TRACE("Thread started\n");
    return TRUE;
    }//
    // Restart the comm thread
    //
    BOOL CSerialPort::RestartMonitoring()
    {
    TRACE("Thread resumed\n");
    m_Thread->ResumeThread();
    return TRUE;
    }
    //
    // Suspend the comm thread
    //
    BOOL CSerialPort::StopMonitoring()
    {
    TRACE("Thread suspended\n");
    m_Thread->SuspendThread(); 
    return TRUE;
    }不知道start了没有?