打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
NSThread 停止线程

如果在线程还未完成的时候,我们需要将该线程停掉,即使我们在外面使用cancel方法,但该线程依旧运行。


那该如何停止一个还在运行中(或着是休眠中的线程呢)




//如果是第一次运行,则直接建一个新的线程启动,如果不是第一次,则先cancel掉前一个线程,然后再建一个新的线程,不然所有线程都会再后台运行着



    if (!animateThread)


    {


       
animateThread = [[NSThread
alloc] initWithTarget:self
selector:@selector(_startAnimations:)
object:images];



        [animateThread
start];


    }


   
else


    {



        [animateThread
cancel];



        [animateThread
release];


       
animateThread = [[NSThread
alloc] initWithTarget:self
selector:@selector(_startAnimations:)
object:images];



        [animateThread
start];



        


    }


然后在_startAnimations函数里:




  //监测当前线程是否被取消过,如果被取消了,则该线程退出。



        if ([[NSThread
currentThread] isCancelled])


        {


            [NSThread
exit];


        }


这样线程就会停止掉了。cancel只是一个标记位,真正的退出线程需要我们根据这个标记位判断 然后使用exit退出。













本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
IOS 线程处理 子线程的启动与结束
iOS中使用子线程的完整方法
hrchen's blogging
iOS开发多线程之总结篇(常见用法、常用方法)
IOS应用架构思考一(网络层)
iOS多线程开发 NSThread
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服