我在主线程中创建工作线程,工作线程执行完毕后发送消息回主线程继续执行Update函数CWinThread *pThread=AfxBeginThread(DownLoadFile,0,THREAD_PRIORITY_NORMAL);
while(TRUE)
{
PeekMessage(msg,NULL,0,0,PM_REMOVE);
if(msg->message==WM_MYQUIT)
{
Onquit();
return 1;
}
else
{
update_=m_infodlg->UpdateFile();
return 0;
}
工作线程中用postthreadmessage(threadID,DOWNLOADFILE,0,0);
这个threadID 怎么得到?
while(TRUE)
{
PeekMessage(msg,NULL,0,0,PM_REMOVE);
if(msg->message==WM_MYQUIT)
{
Onquit();
return 1;
}
else
{
update_=m_infodlg->UpdateFile();
return 0;
}
工作线程中用postthreadmessage(threadID,DOWNLOADFILE,0,0);
这个threadID 怎么得到?
解决方案 »
- 菜单标记出错
- 如何才能知道一个指针所指向的地址是否是在分页的内存中?
- 在C中如何实现自动发邮件?
- 关于按钮!!!!!!!!!!!!
- 关于线程和消息的问题?
- 老题目求解
- DAO添加记录时碰到的小问题,答对给50分!!
- 百分求助:MDI中多种视图时,新建时如何直接打开所需要的DocTemplate
- 你写代码时规范吗?是公司内部的规范还是标准格式?请各位进来讨论一下C++的代码规范化问题!来者有分!
- 我想在vc中用同一个窗口打开相同的url,不知各位高手有贺高见??
- 设置编译模式为release时候,链接问题的LNK2019的错误是怎么回事?
- 用什么函数可以知道一个bmp图片的水平方向和垂直方向的像素个数?
CWinThread *pThread=AfxBeginThread(DownLoadFile,threadID,THREAD_PRIORITY_NORMAL);
跑到
threadWnd.Detach();
--》 AfxEndThread(nResult);
在这句时报出句提示:the thread 0x890 has exited with code 0;
程序不能继续运行了,这是怎么回事?
这时看到的threadWnd 的值是0
while(TRUE)
{
PeekMessage(msg,NULL,0,0,PM_REMOVE);
if(msg-> message==WM_MYQUIT)
{
Onquit();
return 1;
}
else
if(msg->message==DOWNLOADFILE)
{
update_=m_infodlg-> UpdateFile();
return 0;
} 我代码这点就这么写的,就是想工作线程把DOWNLOADFILE传到主线程而已
在工作线程中
用 ::PostMessage(AfxGetMainWnd()->GetSafeHwnd(),DOWNLOADFILE,0,NULL);传递消息,但是有问题,想用postthreadmessage(threadID,DOWNLOADFILE,0,0);
不会得到threadID
这个threadID 怎么得到?
另外,用GetWindowThreadProcessId可以取得某个窗口的线程ID