zoukankan      html  css  js  c++  java
  • iOS中的RunLoop

    iOS中的RunLoop

    使用场景

    1.保持线程的存活,而不是线性的执行完任务就退出了

    <1>不开启RunLoop的线程

    <2>开启RunLoop的线程

    (1)实验用self来持有子线程

    (2)实验让线程不结束任务导致进入死亡状态]

    (3)Event Loop模式

    (4)初步尝试使用RunLoop

    (5)初体验产生的疑问

    ①为什么总是要把RunLoop和线程放在一起来讲?

    ②如何创建RunLoop?

    ③线程默认不开启RunLoop,为什么我们的App或者说主线程却可以一直运行而不会结束?

    ④RunLoop能正常运行的条件是什么?

    ⑤除了[runLoop run]还有那些方法启动RunLoop?

    (6)初体验结论

    2.保持线程的存活后,让线程在我们需要的时候响应消息。

    3.让线程定时执行某任务(Timer)

    <1>初识NSTimer遇到的坑

    <2>使用NSTimer遇到的坑

    <3>NSTimer导致的ViewController无法释放问题

    <4>performSelecter:afterDelay:

    4.监听Observer达到一些目的

    关于RunLoop的释放问题(RunLoop带autoreleasepool的正确写法)

    <1>分析

    <2>需要用while循环控制的RunLoop

    <3>不需要用while循环控制的RunLoop

    <4>关于主线程中autoreleasepool的题外话

    关于子线程RunLoop切换Mode的思考

    本文最大干货,子线程中模拟主线程DefaultMode与TrackingMode的切换,长代码预警

    参考文档

    <1>RunLoop

    <2>autoreleasepool

  • 相关阅读:
    线程中更新ui方法汇总
    Chromium Embedded Framework
    adb提取安装的apk
    下拉列表 Spinner
    更改activity切换方式
    左右页面滑动
    静态成员函数(面向对象的static关键字)
    静态数据成员(面向对象的static关键字)
    静态函数(面向过程的static关键字)
    静态局部变量(面向过程的static关键字)
  • 原文地址:https://www.cnblogs.com/xukuangbo/p/9542651.html
Copyright © 2011-2022 走看看