请教多线程的自动启动?
1:我看关于多线程的资料,似乎启动线程都需要菜单指令,然我想在程序中,当窗口建立后,就自动启动线程,请教:怎样才能做到这一点? 问题点数:50、回复次数:6Top
1 楼Larky(睡仙)回复于 2000-08-10 22:25:00 得分 5
用CreateThread就没问题啊!Top
2 楼mikokong((勇敢向前))回复于 2000-08-10 22:40:00 得分 0
用AfxBeginThread OK!Top
3 楼shupi(树皮)回复于 2000-08-10 22:40:00 得分 0
是在app里还是在MainFrm里?因为使用在单文档多视里。Top
4 楼ppc207(新罗大地)回复于 2000-08-11 08:20:00 得分 10
在这个窗口的初始化代码段中加入AfxBeginThread (),参数写入用户线程类的名字,
再.cpp文件中定义这个用户线程,就象使用函数一样。 Top
5 楼kingwill(周二球)回复于 2000-08-11 08:57:00 得分 20
常用两种方法。
1:窗口建立后,执行AfxBeginThread.但终止线程时,比较麻烦。有时你还必须用CloseHandle和TerminateThread来强行终止线程。这样容易造成内存泄露。
2:设置一个CEvent类对象,你可以控制他的信号量(分两种:被触发,未被触发),在建立线程时,设置线程挂起并等待信号。这样,在线程建立后(你可以提早建立线程,但它时被挂起的),你就可以想什么时候启动线程就启动线程。而且关闭也很方便。这是微软推荐做法。
另外,用CEvent类除了对工作者线程方便,对用户线程也很容易。Top
6 楼panda_w(好想睡啊!)回复于 2000-12-30 10:39:00 得分 15
在初始化的时候用AfxBeginThread启动就行了,第五个参数设置为默认!Top




