带你玩转超级列表框 22 表情包批量下载之多线程秒停止

avatar 2017年6月9日20:08:26 评论 1,647

加入VIP,可以享受无广告视频播放!更可享受教程提前看!详情猛戳:VIP介绍

本节课我们来修复一下因为改成了多线程的解析和下载而出现一些bug的停止功能。


很明显通过前几节课的修改,我们的解析的下载功能可以完美的使用多线程了,但是我们发现一个挺严重的问题,就是点击停止之后,事实上并没有立即停止,而是在运行了一部分子线程的任务之后才停止的。这一点,如果你秒速按下解析然后秒速按下停止按钮感受得最为明显,明明已经显示已停止了,但是还是会写出一大堆的表项来。下载功能也是如此。有种我让你停止了你却停不下来的感觉。

该如何修复这个问题呢?这节课我们就来讲解一下。


多线程秒停止

停止功能也需要更新换代。

原因分析:

因为我们原来的代码所停止的线程句柄是能启动子线程的父线程的,所以我们只能让父线程停止再开新的子线程,子线程依然在跑自己的。所以会造成不会秒停止的状况。

技术要点:

1.针对这种情况,方法有许多,比如每开一个子线程就把子线程的句柄存入数组中,停止时批量停止所有的数组中的句柄等。我们这里采用程序集变量控制的方法,也比较简单方便。

2.定义一个逻辑型程序集变量,集_是否停止,开始解析或者下载时设为假,按下停止改为真,则还在跑的子线程读取该变量就知道,哦,是时候该停止了,就实现了秒停止的功能。

具体的实现来看看我们的视频演示。


课后作业

课后作业:

请大家根据视频所学,将停止功能修复好,能够正确支持我们新的多线程代码,实现秒停止。


请务必完成作业之后再看下一课!

下节课我们将讲解超级列表框与右键菜单的结合。

 

 

 

以下是我们的视频教程:

在线观看:

 

 

高清源文件下载:

内容已经隐藏,请注册为本站会员后查看

 

 

 

感谢大家的收看,我们下期再见!

avatar

发表评论

您必须才能发表评论!