美文网首页iOS OC 学习手册
Swift-主线程处理 UI 事件

Swift-主线程处理 UI 事件

作者: 我为双鱼狂 | 来源:发表于2021-07-13 20:45 被阅读0次

应用场景

iOS 机制规定,当处理 UI 事件时,需要在主线程中进行,比如刷新页面,添加控件等。

若把一些计算等耗时操作在子线程处理完成后,再回到主线程处理 UI 事件时,需要先切换到主线程。

核心逻辑/代码

保证 UI 事件在主线程中执行,可以直接使用 DispatchQueue.main.async{}处理。

这里在使用这个代码之前先用Thread.current.isMainThread判断当前线程是否已经是主线程,如果不是,再调用DispatchQueue.main.async{}执行 UI 事件。

这样的处理,是为了减少不必要的线程切换的开支

示例代码

func UIEventAtMain() {
    // 判断当前线程是否是主线程
    if Thread.current.isMainThread {
        // UI 事件
    } else {
        // 切换到 main 线程,处理
        DispatchQueue.main.async {
            UIEventAtMain()
            
            // 结束事件,防止造成递归循环
            return
        }
    }
}

相关文章

  • 多线程

    主线程(UI线程) 主线程的主要作用显示和刷新UI界面处理UI事件(比如点击事件、滚动事件、拖拽事件等) iOS中...

  • Swift-主线程处理 UI 事件

    应用场景 iOS 机制规定,当处理 UI 事件时,需要在主线程中进行,比如刷新页面,添加控件等。 若把一些计算等耗...

  • 多线程总结

    关于多线程 (一).多线程主线程:显示/刷新UI界面,处理UI事件子线程:处理耗时操作 例如网络访问[图片上传失...

  • 多线程pThread-NSThread-GCD-NSOperat

    1、主线程(UI线程) ——顾名思义就是:与UI有关,处理UI事件的线程。 1.1、主线程的主要作用: 显示\刷新...

  • 全面详细的GCD用法讲解

    线程概念 iOS程序中,主线程(又叫作UI线程)主要任务是处理UI事件,显示和刷新UI,(只有主线程有直接修改UI...

  • 多线程概述

    主线程的作用: 显示\刷新UI界面处理UI界面(比如点击事件、滚动事件、拖曳事件等) 优缺点: 优点:能适当提高程...

  • 多线程知识总结

    多线程的主要作用 显示/刷新UI界面 处理UI事件(比如点击事件、滚动事件、拖拽事件等) 注意:1.别将比较耗时的...

  • Android Handler 笔记

    Handler 发送(延时)/接收/处理消息 1.UI线程更新 2.主/子线程通信 主要的几个类...

  • 多线程编程1-NSThread

    前言 每个iOS应用程序都有个专门用来更新显示UI界面、处理用户触摸事件的主线程,因此不能将其他太耗时的操作放在主...

  • AsyncTask使用总结和源码分析

    简介 当android应用启动的时候会启动一条主线程,这个主线程负责向UI组件分发事件(包括绘制事件),所以当在主...

网友评论

    本文标题:Swift-主线程处理 UI 事件

    本文链接:https://www.haomeiwen.com/subject/wegjpltx.html