1、unsigned long __stdcall HeapSort(void* theArray);    //堆排序
2、hThreads=CreateThread(NULL, 0, &HeapSort, &StructData3, NULL,   &TID3);
3、unsigned long __stdcall HeapSort(void* theArray)
{
.....
}
菜鸟提问:
1、以上3者的运行关系怎样?
2、如果我想在其他函数中调用HeapSort(),应该怎样操作?

解决方案 »

  1.   

    TO resound:你好
    看了的回复之后,清楚了许多,真的谢谢你!
    不过,我还有点不清楚,希望你能再指点一下:
    1、若用MFC中的CwinThread +对象、AfxBeginThread()以及和工作线程函数时,是不是工作线程函数必须为全局函数呢?
    2、若用WINDOWS API :CreateThread()+函数声明+线程实现函数,这时,线程函数也是要为全局函数吗?
    谢谢!
      

  2.   

    1.由于线程函数原形为UINT thread(LPVOID lparam)形式,所以应该是全局函数或者是定义在类中的静态函数.
    若用CWinThread,线程则是CWinThread封装好的这里就看不到全局函数了.(你能看到CWinThread中有一个m_hThread.
    2.如果不用类封装,而仅用API,那么线程函数应该是全局函数,实际系统只是用全局函数名找到它的起始地址而已.