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 阅读详情

相关推荐

MATLAB编程实战:通过SCPI命令高效读取普源示波器数据

本文详细介绍了如何利用MATLAB通过SCPI命令高效读取普源示波器数据,实现自动化测试与数据分析。文章从硬件连接到软件配置,再到核心代码编写与数据解析,提供了完整的实战指南,帮助工程师和科研人员摆脱手动操作,直接从示波器内存中精准读取数据,并利用MATLAB进行FFT频谱分析,大幅提升工作效率。

weixin_29176179的博客 547

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

如何在NVIDIA CX6 网卡和华为CE交换机上为RDMA协议使能DCQCN和PFC

【代码】如何在NVIDIA CX6 网卡和华为CE交换机上使能DCQCN和PFC。

Markchen7788的博客 5094

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

关于小样本学习综述论文的总结

对小样本学习综述的个人总结

qq_46176086的博客 5457

11.8 LangGraph生产级AI Agent开发:从节点定义到高并发架构的终极指南

本文介绍了如何使用 LangGraph 构建生产级 AI Agent,重点解析了 LangGraph 的核心设计、节点与边的实现方法论、生产级实现技巧以及性能优化策略。LangGraph 通过图结构抽象复杂 AI 工作流,核心组件包括节点、边、状态和检查点。节点通过 Python 函数封装原子业务逻辑,边通过条件分支实现动态工作流。生产级实现技巧包括状态管理、多会话控制和错误处理机制。性能优化策略涉及并行执行和缓存机制设计。文章还提供了旅行规划 Agent 的实战案例和常见问题解决方案,帮助开发者构建高效、

yonggeit的博客 3270

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

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

ch_soft的专栏 2414

【100%通过率】华为od机试C卷【特殊的加密算法】Python 实现

有一种特殊的加密算法,明文为一段数字串,经过密码本查找转换,生成另一段密文数字串。规则如下1.明文为一段数字串由0-9组成2.密码本为数字0-9组成的二维数组3.需要按明文串的数字顺序在密码本里找到同样的数字串,密码本里的数字串是由相邻的单元格数字组成,上下和左右是相邻的,注意:对角线不相邻,同一个单元格的数字不能重复使用。

MISAYAONE的博客 5924

GCD延时执行(dispatch_after)

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

MeteoriteMan的博客 1802

【信号与系统】Multisim 仿真信号合成与分解

软件 Multisim 进行方波信号的产生、分解和合成,观察信号波形的分解与合成,加深对信号频谱的理解。

AXYZdong的博客 2万+

YOLOv10改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型

本文记录的是基于MobileNet V3的YOLOv10目标检测轻量化改进方法研究。的模型结构是通过得来的,其中的基础模块结合了的深度可分离卷积、的线性瓶颈和倒置残差结构以及MnasNet中基于挤压和激励的轻量级注意力模块,使模型在性能、效率和灵活性方面都具有显著的优势。本文在替换骨干网络中配置了原论文中的small和large2种模型,以满足不同的需求。

Limiiiing的博客 515

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

Python爬虫实战:爬取小红书数据做爆款分析,我破解了签名加密+移动端反爬(附完整代码)

爬取小红书数据的核心,不是“简单的HTTP请求”,而是“理解移动端接口的加密逻辑和反爬规则”——从x-s/x-t签名破解到移动端UA伪装,再到行为模拟,每一步都是对移动端爬虫的深度理解。这套方案的价值在于,不仅能稳定抓取小红书数据,还能从数据中拆解出有价值的爆款特征,真正把“数据”变成“洞察”。对程序员来说,小红书爬虫不仅是技术练手,更是了解新媒体平台数据逻辑的窗口。希望这篇分享能帮到做新媒体分析或爬虫进阶的小伙伴,也欢迎在评论区交流小红书反爬和爆款分析的更多技巧!

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2058

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

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

无忘无往 8152

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

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

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

chunqingtai2922的博客 239

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

dispatch_after - Swift中的GCD?

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

xfxf996的博客 495

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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、付费专栏及课程。

余额充值