使用UIActivityIndicatorView 和多线程
UIActivityIndicatorView可以通过动画的效果展示延时等待提示。
这里通过线程休眠3秒钟模拟可能造成延时的操作:
[NSThread sleepForTimeInterval:3];
如果碰到这种延时操作,应该单独使用线程来执行,而不是用主线程。
在对应的头文件中加入一个操作队列:
NSOperationQueue *operationQueue;
在控制器的viewDidLoad方法中初始化这个队列实例:
- (void)viewDidLoad {
operationQueue = [[NSOperationQueue alloc] init];
[operationQueue setMaxConcurrentOperationCount:1];
这个队列的实现原理和java中的ExecutorService有点儿相似,见用Java concurrent编写异步加载图片功能的示例。
使用的时候,要往队列里面放一个操作对象,那么队列中的线程就会立即执行它。在本文中队列里面包含一个线程,那么如果一次向队列中加入多个操作对象,线程将顺序执行这些操作。
创建操作的代码:
NSInvocationOperation *operation=[[NSInvocationOperation alloc]
initWithTarget:self
selector:@selector(myTaskAction)
object:nil];
[operationQueue addOperation:operation];
[operation release];
这里的myTaskAction是个函数名称,指明将让线程执行这个函数。
myTaskAction的代码:
-(void)myTaskAction{
[NSThread sleepForTimeInterval:3];
[self.activityView stopAnimating];
}
不过,要注意,在ib中需要对这个UIActivityIndicatorView做一些处理:
转载于:https://www.cnblogs.com/DamonTang/archive/2012/07/18/2597243.html
使用UIActivityIndicatorView 和多线程相关推荐
- Java 多线程概述
多线程技术概述 1.线程与进程 进程:内存中运行的应用程序,每个进程都拥有一个独立的内存空间. 线程:是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换.并发执行,一个进程最少有一个线程, ...
- Java 多线程的基本方式
Java 多线程的基本方式 基础实现两种方式: 通过实现Callable 接口方式(可得到返回值):
- RPC 笔记(08)— socket 通信(多进程多线程服务器)
在上一节中如果并行的客户端连接数超过了默认开启进程的数量,那么后来的客户端请求将会阻塞,为了不阻塞新的客户端,我们可以将进程的单线程改成多线程即可. 服务端代码: import json impo ...
- Python 多线程总结(2)— 线程锁、线程池、线程数量、互斥锁、死锁、线程同步
主要介绍使用 threading 模块创建线程的 3 种方式,分别为: 创建 Thread 实例函数 创建 Thread 实例可调用的类对象 使用 Thread 派生子类的方式 多线程是提高效率的一种 ...
- Python 多线程总结(1)- thread 模块
thread 模块 1. 单线程 首先看下单线程程序运行的例子,如下所示, import timedef loop0():print 'start loop0 begin', time.ctime() ...
- Python多线程调试
有时候程序是多线程的,调试的时候可能跑到别的线程了. 这个时候把thread.start变成threa.run就好了,就会执行完当前线程再执行下一个. for thread in threads:th ...
- python究竟要不要使用多线程
阅读目录 1. 先来看两个例子 2. python虚拟机机制如何控制代码执行? 3. python多线程究竟有没有用? 4. python多进程执行原理 在总结concurrent.futures库之 ...
- Python多线程(3)——Queue模块
Python多线程(3)--Queue模块 Queue模块支持先进先出(FIFO)队列,支持多线程的访问,包括一个主要的类型(Queue)和两个异常类(exception classes). Pyth ...
- java多线程(三)
多线程的设计模式 一.Future模式:与Ajax相似. 转载于:https://www.cnblogs.com/dwxblogs/p/10909330.html
最新文章
- 软件项目经理新手上路8 - 最后期限的迷局
- SpringBoot demo初始
- 第一百二十八期:推荐几个IDEA插件,Java开发者撸码利器,你get到了吗
- postgresql 的 .pgpass密码文件的使用
- 人工智能产业链深度透析-技术层
- 规划系统_智慧水务规划系统思维的设计思考
- OS开发之Objective-C与JavaScript的交互
- 2019 Go 开发者路线图,请收下这份指南!
- html.dropdownlist 设置默认值,设置Html.DropDownList()的默认值
- Marvell车载以太网交换机芯片88Q5050
- 看完这篇解决你99%的运维安全陋习,快别踩坑了!
- 白话大数据--Hash分片
- Hibernate配置(核心配置文件.cfg.xml 和映射配置文件.hbm.xml)(对象-关系映射 Object Relational Mapping)
- 南昌大学计算机学院夏令营,南昌大学关于举办2021年优秀大学生暑期夏令营活动的通知...
- webstorm 打开项目java.io.IOEXception:couldn't create PTY
- 校招社招互联网面试经验总结
- 体系化数学讲解及Excel实现NN神经网络全流程
- 时间戳与日期相互转换
- 临界区、互斥量、事件、信号量四种方式
- Android 悬浮窗