GCD高级用法(一):dispatch_after

完整详解GCD系列(一)dispatch_async;dispatch_sync;dispatch_async_f;dispatch_sync_f 为什么要写这个系列,因为百度了一下,找了很多都是些片面的Blog,拷贝来拷贝去的,写的也很粗糙。没有一个完整的可参考系列 所以,我要写这个系列,尽量把官网文档中GCD的强大功能完整的表达出来。方便自己,也方便别人,如果发现有问题,欢迎提出 阅读详情
 
   dispatch_after(一定时间后,将执行的操作加入到队列中)
    
    // <#dispatch_time_t when#> 指定时间
    
    //1.第一种用法
    /* NSEC_PER_SEC 秒
     * NSEC_PER_MSEC 毫秒
     * NSEC_PER_USEC 微秒
     */
    dispatch_time_t time=dispatch_time(DISPATCH_TIME_NOW, 3ull *NSEC_PER_SEC);
    
    dispatch_after(time, dispatch_get_main_queue(), ^{
        //执行操作
        NSLog(@"after 3s");
    });
    
    //2.第二种用法
   //<#dispatch_function_t work#> --执行的c语言方法
    dispatch_after_f(dispatch_time(DISPATCH_TIME_NOW, 3ull *NSEC_PER_SEC), dispatch_get_main_queue(), NULL, fun1);
    
    
    //3.第三种用法
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5ull * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
         NSLog(@"after 5s");
    });
    
#warning mark -注意
    
    //1.不是一定时间后执行相应的任务,而是一定时间后,将执行的操作加入到队列中(队列里面再分配执行的时间)
    //2.主线程 RunLoop 1/60秒检测时间,追加的时间范围 3s~(3+1/60)s
    
    
}

void fun1()
{
    NSLog(@"after 3s");

}


GCD学习之dispatch_after dispatch_after 经常会有这样的情况:想要在3秒后执行处理。这种想在指定直接后执行处理的情况,可使用dispatch_after函数。 在3秒后将指定的Block追加到Main Dispatch Queue中的源代码为: dispatch_time_t time = dispatch_time(DISPATCH_TIME_NOW,3ull * NESC_PER_SEC 阅读详情

相关推荐

山东大学机器学习(实验一内容)——线性回归

1. 描述 第一个练习将为你提供线性回归练习。这些练习已经用Matlab进行了广泛的测试,但它们也应该在Octave中工作,它被称为“免费版的Matlab”。如果你使用的是Octave,那就是 一定要安装Image包(可在Windows中作为选项使用)安装程序,可从Octave-Forge获得Linux。 2.线性回归 回想一下,线性回归模型是 hθ(x)=θTx=∑j=0nθjxj h_{\th...

HachiLin的博客 4108

dispatch_after-延迟执行的操作使用方法

dispatch_after(延迟执行的操作加入到队列中)1.第一种用法 /* NSEC_PER_SEC 秒 * NSEC_PER_MSEC 毫秒 * NSEC_PER_USEC 微秒 */ dispatch_time_t time=dispatch_time(DISPATCH_TIME_NOW, 3ull *NSEC_PER_SEC); dispat

timtian008的博客 2914

CODESYS做Modbus TCP主站踩坑记:从IP配置到数据映射的完整避坑指南

本文详细记录了在CODESYS中配置Modbus TCP主站的全过程,从IP配置到数据映射的常见问题及解决方案。重点解析了网络适配器选择、Slave ID误解、地址偏移陷阱等关键问题,并提供了实用的调试技巧和性能优化建议,帮助工业通信开发者高效避坑。

weixin_30642561的博客 625

IOS dispatch_after的执行和取消

// dispatch_after的执行 static PDDelayedBlockHandle perform_block_after_delay(CGFloat seconds, dispatch_block_t block) { if (block == nil) { return nil; } __block disp

fanxiaoxuan1234的专栏 4359

树莓派4B没有serial0或ttyS0,serial0没有映射到ttyS0,serial0和serial1调换映射

环境: 树莓派4B,ubuntu mate20 现象 终端输入ls -l /dev,发现只有serial1->ttyAMA0,没有serial0页没有ttyS0,更没有二者的映射。网上很多方法都是树莓派3B和3B+的,我自己试过,不太适用于4B,下面的方法是4B的,我自己用是成功的。 解决方法 cd /boot/firmware sudo gedit config.txt 注意不是/boot下的config,而是/boot/firmware下的config 打开文件后,找到enable_uart=0

qq_41208487的博客 7891

AVM环视:系统搭建整体流程

文章目录前言一、畸变矫正鱼眼相机二、透视变换三、图像拼接四、图像融合总结 前言 由于正在做AVM环视,所以记录一下整个过程,归纳为一个系列文章,并对期间遇到的错误进行归纳整理。本文主要概括了AVM环视的大致流程和逻辑,不涉及代码部分,仅供思路参考,其中涉及的具体技术会在后期整理为小章节进行分析。 一、畸变矫正 鱼眼相机 做环视基本上使用到的是鱼眼照片,因为鱼眼相机的视角范围可以达到220°到230°,所以一个相机就可以采集到一个面的全部信息,例如汽车具有四个面,那么在汽车的前后左右分别安装一个鱼眼相机.

qq_34468890的博客 6536

objective-c 取消执行的延迟函数

//延迟执行 [self performSelector:@selector(hidenSelf) withObject:nil afterDelay:2]; //取消延迟执行 [[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(hidenSelf) object:nil];

ch_soft的专栏 2414

什么是无人机巡检?如何实现无人机自动巡检?

复亚智能的无人机自动巡检系统通过高度自动化的技术,实现了无人机的高效巡检作业。无人机自动机场支持无人机的自动起降和电池更换,自动飞行算法确保无人机在复杂环境中的精准飞行和拍摄,而云端识别诊断和AI感知算法平台则实现图像的实时传输和智能分析。复亚智能,作为无人机技术的创新者和推动者,致力于开发先进的无人机自动巡检解决方案,助力各行各业实现智能化、自动化的巡检工作,引领智能巡检的未来。利用人工智能和机器学习算法,无人机可以被训练来识别特定的模式和异常,如结构损坏、热泄漏等,从而提高巡检的准确性和效率。

foiadrone的博客 2844

GCD延时执行(dispatch_after)

上一篇我们讲了GCD的定时器GCD定时器(GCD Timer) 这一篇我们来说说GCD的延迟执行. 在NSTimer里面我们有几个NSObject的分类方法执行延时方法.一般把这些方法称之为线程间的"交互".戳NSThread详解 在GCD里面的延迟.有两个方法: // dispatch_after(<#dispatch_time_t when#>, <#dispatc...

MeteoriteMan的博客 1802

Qt6安装保姆级教程:从国内镜像下载到配置避坑指南(附清华/中科大源)

本文提供详细的Qt6安装与配置指南,重点介绍如何利用清华大学、中国科学技术大学等国内镜像源解决下载速度慢的问题。内容涵盖在线安装器获取、组件选择策略、环境变量配置以及常见编译与部署问题的排查方法,旨在帮助国内开发者高效、顺畅地完成Qt6开发环境搭建。

weixin_29281915的博客 633

倒立摆的PLC控制(模型分析+ SCL源代码)

首先简单介绍下倒立摆模型,下面这幅图是MATLAB网站上的倒立摆模型,下面我们利用牛顿第二运动定律建立摆杆的运动方程。

RXXW_Dor的博客 3336

ios多线程操作(七)—— GCD延迟操作与一次性代码

使用GCD函数可以进行延时操作,该函数为 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ });   现在我们来分解一下参数 dispatch_time(DISPATCH_TIME_N

爱家人,爱老婆,爱生活,爱coding,爱运动的有爱青年 2903

比NTP还牛逼的时间同步协议:1588v2,亚微秒级!

1588v2,又称为Precision Time Protocol Version 2,即精密时间协议的第二版本,或称为PTPv2,是一种精密时间同步协议标准,旨在实现网络中设备之间的高精度时间同步。该协议由IEEE标准组织发布,并在网络测量和控制系统中得到广泛应用。1588v2的主要目的是在计算机网络中提供高度准确的时间同步。它可用于确保不同设备之间的时钟同步,从而协调它们的操作。这对于需要协同工作的系统、无线通信基站等具有关键性的应用非常重要。

网络技术联盟站 4281

GCD源码吐血分析(2)——dispatch_async/dispatch_sync/dispatch_once/dispatch group

上一章中,我们知道了获取GCD queue的底层实现。获取到queue后,就需要将任务提交到queue中进行处理。 我们有两种方式提交任务: dispatch_async和dispatch_sync。一个是异步不等待任务完成就返回,另一个是同步任务,需要等待任务完成。这两种提交任务的方式有所不同: dispatch_async :底层运用了线程池,会在和当前线程不同的线程上处理任务。 di...

无忘无往 8152

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

完整详解GCD系列(二)dispatch_after;dispatch_apply;dispatch

本文阅读的过程中,如有概念不懂,请参照前专栏中之前的文章,如果还有疑惑,请留言。 这是我关于GCD专栏的地址 http://blog.youkuaiyun.com/column/details/swift-gcd.html 本教涵盖的内容一、dispatch_after二、dispatch_appl...

chunqingtai2922的博客 239

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

dispatch_after - Swift中的GCD?

I've gone through the iBook from Apple, and couldn't find any definition of it: 我从Apple那里浏览了iBook ,

xfxf996的博客 495

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

GCD高级用法-Dispatch I/O

在读取较大文件时,如果将文件分成合适的大小并使用Global Dispatch Queue 并发读取的话,应该会比一般的读取速度快不少。现在的输入/输出硬件已经可以做到一次使用多个线程更快地并发读取了。能实现这一功能的就是Dispatch I/O 和Dispatch Data。 通过Dispatch I/O读写文件时,使用Global Dispatch Queue将1个文件按某个

每天进步一点点 4841

完整详解GCD系列(二)dispatch_after;dispatch_apply;dispatch_once

本文阅读的过程中,如有概念不懂,请参照前一篇文章,如果还有疑惑,请留言。 这是我关于GCD专栏的地址 http://blog.youkuaiyun.com/column/details/swift-gcd.html 本教涵盖的内容 一、dispatch_after 二、dispatch_apply 三、dispatch_once

Leo的专栏 1万+

IOS GCD dispatch_after NSTimer 延迟加载

dispatch_after 比如我们经常会遇到延迟处理的任务,想在几秒后执行,也可能不仅限于几秒,总之这种想再指定时间处理后执行处理的情况,有两种办法一种是dispatch after和NSTimers处理。     dispatch_after(dispatch_time(DISPATCH_TIME_NOW(int64_t)(2ull*NSEC_PER_SEC)), dispatch_ge

sunjie886的博客 1970

[iOS]GCD(一)

[iOS]GCD(一)

m0_74703932的博客 2158

GCD(Grand Center Dispatch)使用详解

一、GCD简介 GCD是苹果公司推出的基于多核CPU多线程技术,GCD属于系统级的线程管理,在Dispatch queue中执行需要执行的任务性能非常高。GCD这块已经开源,地址是 http://libdispatch.macosforge.org。二、按获取方式分类队列 dispatch queue队列就是执行任务的队列,由于遵循 First in First out(先进先出)

MN1107 2592

GCD信号量(dispatch_semaphore)

上一讲我们谈到可以使用GCD调度组来实现异步处理完成后最后回到某个线程后集中处理(多接口异步请求.回到主线程刷新UI).戳:GCD调度组(dispatch_group) 这一讲我们来谈一个也能实现该需求的GCD信号量(Semaphores) 主要就是下面几个东西 // dispatch_semaphore_t // dispatch_semaphore_create(<#l...

MeteoriteMan的博客 760

GCD之dispatch_after、dispatch_apply、dispatch_once等使用介绍

dispatch_after dispatch_after(dispatch_time_t when, dispatch_queue_t queue, ^(void)block) when 时间间隔 queue 提交到的队列 block 执行的任务 使用如下: dispatch_after( dispatch_time(DISPATCH_TIME_NOW

reylen的专栏 2334

GCD 高级特性解析:dispatch_group、dispatch_semaphore 与 barrier 的巧妙运用

Grand Central Dispatch(GCD)作为 Apple 开发的多核并发技术,为开发者提供了强大的任务调度能力。本文将深入解析 GCD 中三个高级特性——dispatch_group、dispatch_semaphore 和 barrier,帮助你掌握这些工具的使用技巧,轻松应对复杂的并发场景。 ## dispatch_group:任务协同的终极方案 dispatch_group

gitblog_01049的博客 869

GCD dispatch async / dispatch sync 介绍 。

一 . 什么是 GCD  GCD (Grand Central Dispatch) :是一套底层的 API , 它主要是将允许程序将任务切分成多个单一的任务 ,然后提交至队列来进行并发或窜行的执行方法 。GCD 与block 是在IOS 4.0 引用的,不支持 4.0 以下的系统 。 二 . dispatch async 与 dispatch  sync 方法的介绍  dispatc

祝我们都能在鸡零狗碎的生活里,找到自己的快乐~ 752

iOS 多线程 GCD(滚床单) 的高级用法

GCD 的四种高级用法: 以下是我总结的四种 滚床单 的高级用法 及示例程序 和 输出结果. #pragma mark - 1.0 一次性执行 : 代码只执行一次 #pragma mark - 2.0 单设计模式 : 创建单例 #pragma mark - 3.0 延时执行方法 : 延时执行任务 #pragma mark - 4.0 调度

张锦辉的博客 1814
上一篇: NSAttributedString 详解
下一篇: GCD高级用法(二) dispatch_group
韩小城
博客等级 码龄12年 37粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值