我建立了MFC APP工程。。
反正这个工程就是正常的一个控制性的工程
新在就是需要点击一个按纽后,触发一个工作者线程!
我看别人说只需编写控制函数 和启动线程 
我是不是直接就在那个按纽所在的CPP文件加入上面的控制函数 和启动线程就好了啊?(也就是在那个按纽上加个点按纽触发线程的函数)
还用不用把原来的程序定义成一个用户界面线程?也就是说,我在原来的程序中突然直接加进这个线程就是正确的?高手回答啊

解决方案 »

  1.   

    看看这个吧, 不太明白你的意思.http://msdn2.microsoft.com/en-us/library/69644x60(VS.80).aspx
      

  2.   

    挖塞回答的好快啊
    我在问问:假如 我的工作者线程开始运行了!是不是他就自己在那运行,在他开始运行后,系统就认为现在有2个线程在工作(另一个线程是我原来的程序)。。?
    从而,系统自动的开始分配CPU时间片,一下给我的工作者线程,一下给触发工作者线程以后的程序代码?也就是说:工作者线程开始和后面的程序开始并行运行???谢谢你们!
      

  3.   

    对 :-)所以可能要考虑的同步的问题, 避免Race Conditions
      

  4.   

    是并发, 不是并行, 如果你只有一个CPU
      

  5.   

    根据线程的优先级,Windows系统会进行分时的。
      

  6.   

    启动后就成了脱缰的野马了,不过还是可以发消息来控制它,或者全局变量来控制
    建议看看候杰的win32多线程编程
      

  7.   

    哈,你们太热心了。。我在确定一下子哦也就是当工作者线程开始以后,CPU就开始并发了,也就是开始 独立的 同时(我需要的就是他们同时各自运行)的 运行 工作线程和主程序以后的程序(触发工作线程以后的语句)?我是菜鸟,我自己问的问题怕 你们 没明白(我自己也好心虚哦。。) 汗!!!谢谢你们!
      

  8.   

    UINT MyThreadProc( LPVOID pParam )
    {
        CMyObject* pObject = (CMyObject*)pParam;    if (pObject == NULL ||
            !pObject->IsKindOf(RUNTIME_CLASS(CMyObject)))
        return 1;   // if pObject is not valid    // do something with 'pObject'    return 0;   // thread completed successfully
    }// inside a different function in the program
    .
    .
    .
    pNewObject = new CMyObject;
    AfxBeginThread(MyThreadProc, pNewObject);
    .
    .
    .我在问下,上面的代码是通用的吗?
    也就是,我直接放在我的程序里
    把  // do something with 'pObject'  这个改成我要做的工作,就可以了吗?
    怎么还有Cobject类啊,
    如果不能直接用,怎么改,我就可以放我的程序里了啊?
      

  9.   

    UINT MyThreadProc( LPVOID pParam )   // 线程函数
    {
         // 。。
         return 0;
    }// 。AfxBeginThread(MyThreadProc, YourParam);  // 创建线程,第一参数是线程函数,另一个是要传递给线程函数的参数。