怎么样让这个线程结束 ( 积分: 100 )

  • 主题发起人 主题发起人 回音壁
  • 开始时间 开始时间

回音壁

Unregistered / Unconfirmed
GUEST, unregistred user!
有2个线程:
一个线程播放音乐;
一个线程在not terminated条件下不断循环查找list上是否有数据,如果有,读取数据,停止播放音乐,结束整个线程.
问题:如何在子线程里结束整个主线程
第一次接触多线程问题,还有点糊涂,请大家帮帮我!!!!
 
有2个线程:
一个线程播放音乐;
一个线程在not terminated条件下不断循环查找list上是否有数据,如果有,读取数据,停止播放音乐,结束整个线程.
问题:如何在子线程里结束整个主线程
第一次接触多线程问题,还有点糊涂,请大家帮帮我!!!!
 
发消息
PostMessage
 
[blue]有没有代码给我看看?[/blue]
 
你可以向这个子线程的构造函数传递主窗体的引用并储存,在需要关闭时调用主窗体的Close方法.
 
把主线程的句柄传给子线程的一个变量,然后再需要关闭线程的时候用tTerminateThread函数来关线程步就行了!也可以通过消息来关闭,不过向线程发消息,要用postthreadmessage来发送线程消息,还要再线程里面写消息循环来处理
 
要在线程中结束线程就exit 就行了撒,退出线程就是结束线程了嘛,记得在线程前面加上
freeonterminate:=true,这样结束后就自动释放资源了
 
主线程调用子线程时,可以考虑多传递两个形参,一个是结束标志,一个是回调函数。
子线程循环里,如果需要结束主线程,设置标志位。
回调函数应当在子线程里的While循环里不断执行。因为这个回调函数的实体是在主函数里,此时只要对标志位加以判断:是,就释放资源结束程序;否,则不动作。
你不妨试先,我以前用CBuilder就是这么处理的。
 
后退
顶部