线程到底有什么用?好像没什么作用啊?

来源:百度知道 编辑:UC知道 时间:2024/05/30 01:31:43
大家好,我写了个程序,其中有一个文件中要用到while循环,问题是我想在这个while循环的同时还可以做其它的事情(事实上是还能够按下一个按钮来终止这个循环)。要完成这个功能,我想大家都想到了用创建线程或进程的方法。可是我创建了一个线程函数,将这个while循环放到这个线程函数中,运行时还是无法按下按钮,好像是while一直在循环使得这个按钮得不到执行,再多按几下的话程序就死了。这是怎么回事啊?

函数是必须执行以后才会返回,而线程就不是了,你这个问题可能有两个原因,第一个原因是线程根本就没执行,当操作系统执行完主线程以后就结束了,根本没有执行自己编写的线程;第二个原因就是线程也是像函数那样的执行方式,在接收带点击时事件是不会处理的,因为循环还没执行完事,你可以将点击事件设置为循环的结束条件。
至于你说的线程有没有用,个人感觉多少有一点用,因为可以执行多个功能,而函数就是必须执行完事才能执行其他函数,但是在单核CPU上用的总时间是一样的,而且多个线程还会抢占系统资源,还有就是程序的结构也变的很乱,所以个人认为能不用还是不用的好

O_O

是你写错了吧,线程编程是属于核心级编程呢,涉及同步 异步 锁 事件等概念呢~~~如果只是用于测试研究那倒没关系……

你那个问题啊,还得具体看呢`~~~

不会
你用AfxBeginThread(ThreadFunc,pParam)创建这个线程
然后在ThreadFunc()里面进行while处理,就不会卡住
不过你可以把你的代码传上来看看
说不定是代码的设计问题