关于一个线程的问题---如何在MFC中如何进入线程函数?

xinxzhao 2008-03-24 11:03:15
编写控制台应用程序时,如果程序要进入线程,必须让主程序进入sleep才行,在MFC中也要这样吗?如何让主程序进入sleep呢?我在有书上看到,有程序半没有让主程序进入sleep,而直接在对话框类的OnInitDialog函数中用了:
HANDLE hThread=CreateThread(NULL,0,RecvProc,(LPVOID)pRecvParam,0,NULL);
CloseHandle(hThread);
没了.
接下来就编写了线程入口函数的编写.我不知道它是如何进入线程的?主程序一直占用着,怎么可能进入该线程呢?
望各位高手指教.
...全文
152 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
abzhang2 2008-03-25
  • 打赏
  • 举报
回复
楼主还要继续学习,对WINDOWS线程机制不了解
xinxzhao 2008-03-25
  • 打赏
  • 举报
回复
是操作系统给线程安排的CPU时间片.
xinxzhao 2008-03-25
  • 打赏
  • 举报
回复
我知道了,谢谢啊.我真笨啊,在那个控制台应用程序上加上sleep语句,是为了让程序不至于很快就执行完,甚至导致子线程的执行时间(即CPU给它分配的时间片)还没有到来就退出程序了,故为了让子线程能够运行,要使用sleep,是为了让主线程暂停执行,使操作系统从等待运行的线程队列中选择一个线程来执行.而在MFC程序中,只要进程没有结束,子线程的执行时间(CPU给子线程分配的时间片)就会到来.无须要让主线程进入暂停执行.哈哈,懂了,懂了.我的理解,如果哪位高手还有不同看法,请不吝指教啊.
xinxzhao 2008-03-25
  • 打赏
  • 举报
回复
还是没有真正领悟面向对象程序执行的精髓啊.
wltg2001 2008-03-25
  • 打赏
  • 举报
回复
如果程序要进入线程,必须让主程序进入sleep才行
========================
谁说的,主线程和子线程在宏观上是并行的,要不要线程干吗用.
mr.zhoux 2008-03-25
  • 打赏
  • 举报
回复
程序执行是分时间片的,所有程序的不是同时进行的,cpu按照优先级依次给每个程序执行的时间,

15,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧