iOS OS X 和 iOS 中的多线程技术-2 (performSelectors)
来源:互联网 发布:刺客信条4a卡优化 编辑:程序博客网 时间:2024/06/05 00:08
//联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪哄
一、performSelectors(执行选择器)
NSObject 提供了以 performSelector 为前缀的一系列方法。它们可以让用户在指定线程中,或者立即,或者延迟执行某个方法调用。这个方法给了用户实现多线程编程最简单的方法。
下面有一些例子:
1.在当前线程中执行方法:
- (void)performSelector:(SEL)aSelector withObject:(id)anArgument
afterDelay:(NSTimeInterval)delay
- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:
(NSTimeInterval)delay inModes:(NSArray *)modes
2.在指定线程中执行方法:
- (void)performSelector:(SEL)aSelector onThread:(NSThread *)thread
withObject:(id)arg waitUntilDone:(BOOL)wait
- (void)performSelector:(SEL)aSelector onThread:(NSThread *)thread withObject:
(id)arg waitUntilDone:(BOOL)wait modes:(NSArray *)array
3.在主线程中执行方法:
- (void)performSelectorOnMainThread: (SEL)selector withObject:(id)argument
waitUntilDone:(BOOL)wait
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg
waitUntilDone:(BOOL)wait modes:(NSArray *)array
4.在后台线程中执行方法:
- (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg
这一系列方法简单易用,但只提供了有限的几个选择:指定执行的方法(但传入方法的参数数量有限制);指定是在当前线程,还是在主线程,还是在后台线程执行;指定是否需要阻塞当前线程等待结果。
例如,以下代码使得方法 foo: 在一个新的后台线程执行,并传入了 object 参数:
SEL selector = @selector(foo:);
[self performSelectorInBackground:selector withObject:object];
以下代码使得 updateUI 方法在主线程内得到执行,并且当前线程会被阻塞,直到主线程执行完该函数:
[self performSelectorOnMainThread:@selector(updateUI) withObject:nil waitUntilDone:YES];
谢谢!!!
- iOS OS X 和 iOS 中的多线程技术-2 (performSelectors)
- OS X 和 iOS 中的多线程技术
- OS X 和 iOS 中的多线程技术
- OS X 和 iOS 中的多线程技术
- OS X 和 iOS 中的多线程技术
- OS X 和 iOS 中的多线程技术
- iOS OS X 和 iOS 中的多线程技术-1
- iOS OS X 和 iOS 中的多线程技术-3 (NSThread)
- iOS OS X 和 iOS 中的多线程技术-4 (NSOperation)
- iOS OS X 和 iOS 中的多线程技术-4 (GCD)
- iOS OS X 和 iOS 中的多线程技术-4.1 (GCD)
- iOS和OS X中的bundle
- OS X 和 iOS 中的并发编程
- [读书笔记]iOS与OS X多线程和内存管理 [Blocks部分-2]
- iOS/OS X中的高精确度定时器
- 【OS X和iOS系统学习笔记】 OS X架构
- iOS 多线程技术2
- OS X和iOS公共框架列表
- 学习笔记DL008:概率论,随机变量,概率分布,边缘概率,条件概率,期望、方差、协方差
- 多图片上传-springboot
- Linnux 安装SSH服务
- SharePoint Online 创建资产库
- 为什么ElasticSearch要在7.X版本去掉type?
- iOS OS X 和 iOS 中的多线程技术-2 (performSelectors)
- 超链接 a href 提交表单通过get/post方式
- Cocoa深入学习:NSOperationQueue、NSRunLoop和线程安全
- 什么是尾递归?
- 亏损数亿,阿里也要强推99元白菜价智能音箱!背后逻辑到底是啥?
- 一文读懂AlphaGo背后的强化学习:它的背景知识与贝尔曼方程的原理
- AT&T汇编学习总结-1
- AI一分钟 | 阿里NLP技术连破两项世界纪录,玉泉一号AI试验卫星明年发射
- Codeforces Round #447 (Div. 2) E. Ralph and Mushrooms