我有一个窗口A,然后创建了2个窗口B,由于是非模态的,所以可以创建2个。然后两个窗口各自创建了1一个worker线程,可是线程执行完如何返回给各自的窗口?

解决方案 »

  1.   

    AfxBeginThread(ComputeThreadProc, GetSafeHwnd(),   --->传入handle 
                       THREAD_PRIORITY_NORMAL);
    UINT ComputeThreadProc(LPVOID pParam)
    {
        volatile int nTemp; // volatile else compiler optimizes too much    for (g_nCount = 0; g_nCount < CComputeDlg::nMaxCount;
                           ::InterlockedIncrement((long*) &g_nCount)) {
            for (nTemp = 0; nTemp < 10000; nTemp++) {
                // uses up CPU cycles
            }
        }
        // WM_THREADFINISHED is user-defined message
        ::PostMessage((HWND) pParam, WM_THREADFINISHED, 0, 0);  ----- 这里
        g_nCount = 0;
        return 0; // ends the thread
    }