怎样让线程结束时发一个提示消息?
我用的API是CreateThread

解决方案 »

  1.   

    线程函数return之前用PostMessage发一个消息在CMyDlg的函数里调用:
    CreateThread(NULL,0,Progress,(LPVOID*)this,...); //this参数表示一个窗口指针线程函数:
    UINT Progress(LPVOID pParam)
    {
         CMyDlg *pDlg = (CMyDlg *)pParam;
         pDlg->PostMessage(...); //
         return 0;
    }
      

  2.   

    为什么要CreateThread结束时返回消息?CreateThread就是一个函数调用,并没有延时啊,该函数调用后的返回值就是线程句柄了。
      

  3.   

    为什么要CreateThread结束时返回消息?CreateThread就是一个函数调用,并没有延时啊,该函数调用后的返回值就是线程句柄了。因为有些程序必须在线城结束之后才能运行否则出错!!!!
      

  4.   

    HANDLE hThread=CreateThread(...);....TerminateThread(hThread);
    WaitForSingleObject(hThread,INFINITE);
      

  5.   

    方法:
    1.用MessageBox(),弹出提示信息
    2.线程结束时会有返回值,用GetExitThreadCode()得到返回值进行判断
    3.可以用CEvent
      

  6.   

    在非UI(即Worker)线程中直接MessageBox不是什么明智之举。可以WaitForSingleObject...
      

  7.   

    HANDLE hThread=CreateThread(...);while (WAIT_OBJECT_0!=WaitForSingleObject(hThread,0))
    {
        ....干别的事情
        ....同时等待线程运行结束
    }
      

  8.   

    在CMyDlg的函数里调用:
    HANDLE hThread=CreateThread(...);while (WAIT_OBJECT_0!=WaitForSingleObject(hThread,0))
    {
        ....干别的事情
        ....同时等待线程运行结束
    }--------------------------------------
    不错,不过得考虑循环时,必须能响应消息,而且不太占cpu资源。
      

  9.   

    考虑到cpu资源,还是线程函数return之前用PostMessage发一个消息比较好,等待时候,不消耗cpu资源。发一个自定义消息比较好。