MFC用AfxBeginThread创建的线程,如何获取线程函数返回值.

MFC用AfxBeginThread()创建线程不是通过一个函数的吗,那个函数有返回值,但我不知道如何获取他.UINTMyThread(LPVOIDlpParam){re... MFC用AfxBeginThread()创建线程不是通过一个函数的吗,那个函数有返回值,但我不知道如何获取他.
UINT MyThread(LPVOID lpParam)
{
return function();;//这个函数有个返回值 如何获取
}

int main()
{
CWinThead m_thread;
m_thread = AfxBeginThread(MyThread,null);
return 0;
}
展开
 我来答
波和6Y
2011-08-24 · 超过10用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:20.3万
展开全部
#include <Windows.h>
#include <iostream>
#include <stdio.h>
using namespace std;

DWORD WINAPI ThreadPro(LPVOID lpParamter);
BOOL bRunning = TRUE;
int main()
{
HANDLE hThread = CreateThread(NULL,0,ThreadPro,0,0,NULL);

DWORD dwExitCode;
GetExitCodeThread(hThread,&dwExitCode);
printf("0x%08X\n",dwExitCode);
system("pause");
bRunning = FALSE;
system("pause");
GetExitCodeThread(hThread,&dwExitCode);
printf("0x%08X\n",dwExitCode);
system("pause");
CloseHandle(hThread);
return 0;
}

DWORD WINAPI ThreadPro(LPVOID lpParamter)
{

while(bRunning)
{
Sleep(1000);
}
return 4L;
}

这个代码给你参考,线程的创建和销毁过程还是很复杂的,想要深入一点了解的话,再问我吧!
ngzfsysyhz
2011-08-24 · TA获得超过212个赞
知道小有建树答主
回答量:662
采纳率:0%
帮助的人:372万
展开全部
查询MFC,SuspendThread()

CSDN上谈到
“直接SuspendThread函数不能保证在何处挂起,可能有线程未退出临界区导致死锁,不太安全。
创建一个Event,需要挂起线程时,WaitForSingleObject等待,继续的时候,SetEvent ”
这个方法更安全。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lengyu9010
2011-08-25 · TA获得超过218个赞
知道小有建树答主
回答量:226
采纳率:100%
帮助的人:142万
展开全部
建一个全局变量保存返回值就行了,比如返回值为整型:
int nRtn;
UINT MyThread(LPVOID lpParam)
{
nRtn = function();
return nRtn;
}

int main()
{
AfxBeginThread(MyThread,null);
Sleep(nTime);//等待线程运行结束后对nRtn操作
...

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
昆仑机电
2011-08-24 · 超过32用户采纳过TA的回答
知道答主
回答量:109
采纳率:0%
帮助的人:94万
展开全部
反回是一个CWinTheadd类的指针 。。。你可以保留这个指针。。用来对线程进行操作。。如挂起。。启动。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式