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 和多线程相关推荐

  1. Java 多线程概述

    多线程技术概述 1.线程与进程 进程:内存中运行的应用程序,每个进程都拥有一个独立的内存空间. 线程:是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换.并发执行,一个进程最少有一个线程, ...

  2. Java 多线程的基本方式

    Java 多线程的基本方式 基础实现两种方式: 通过实现Callable 接口方式(可得到返回值):

  3. RPC 笔记(08)— socket 通信(多进程多线程服务器)

    在上一节中如果并行的客户端连接数超过了默认开启进程的数量,那么后来的客户端请求将会阻塞,为了不阻塞新的客户端,我们可以将进程的单线程改成多线程即可. ​ 服务端代码: import json impo ...

  4. Python 多线程总结(2)— 线程锁、线程池、线程数量、互斥锁、死锁、线程同步

    主要介绍使用 threading 模块创建线程的 3 种方式,分别为: 创建 Thread 实例函数 创建 Thread 实例可调用的类对象 使用 Thread 派生子类的方式 多线程是提高效率的一种 ...

  5. Python 多线程总结(1)- thread 模块

    thread 模块 1. 单线程 首先看下单线程程序运行的例子,如下所示, import timedef loop0():print 'start loop0 begin', time.ctime() ...

  6. Python多线程调试

    有时候程序是多线程的,调试的时候可能跑到别的线程了. 这个时候把thread.start变成threa.run就好了,就会执行完当前线程再执行下一个. for thread in threads:th ...

  7. python究竟要不要使用多线程

    阅读目录 1. 先来看两个例子 2. python虚拟机机制如何控制代码执行? 3. python多线程究竟有没有用? 4. python多进程执行原理 在总结concurrent.futures库之 ...

  8. Python多线程(3)——Queue模块

    Python多线程(3)--Queue模块 Queue模块支持先进先出(FIFO)队列,支持多线程的访问,包括一个主要的类型(Queue)和两个异常类(exception classes). Pyth ...

  9. java多线程(三)

    多线程的设计模式 一.Future模式:与Ajax相似. 转载于:https://www.cnblogs.com/dwxblogs/p/10909330.html

最新文章

  1. 软件项目经理新手上路8 - 最后期限的迷局
  2. SpringBoot demo初始
  3. 第一百二十八期:推荐几个IDEA插件,Java开发者撸码利器,你get到了吗
  4. postgresql 的 .pgpass密码文件的使用
  5. 人工智能产业链深度透析-技术层
  6. 规划系统_智慧水务规划系统思维的设计思考
  7. OS开发之Objective-C与JavaScript的交互
  8. 2019 Go 开发者路线图,请收下这份指南!
  9. html.dropdownlist 设置默认值,设置Html.DropDownList()的默认值
  10. Marvell车载以太网交换机芯片88Q5050
  11. 看完这篇解决你99%的运维安全陋习,快别踩坑了!
  12. 白话大数据--Hash分片
  13. Hibernate配置(核心配置文件.cfg.xml 和映射配置文件.hbm.xml)(对象-关系映射 Object Relational Mapping)
  14. 南昌大学计算机学院夏令营,南昌大学关于举办2021年优秀大学生暑期夏令营活动的通知...
  15. webstorm 打开项目java.io.IOEXception:couldn't create PTY
  16. 校招社招互联网面试经验总结
  17. 体系化数学讲解及Excel实现NN神经网络全流程
  18. 时间戳与日期相互转换
  19. 临界区、互斥量、事件、信号量四种方式
  20. Android 悬浮窗

热门文章

  1. 将内存使用的详细情况输出到文件
  2. 处理器性能越来越强,但电脑为什么没有手机流畅?
  3. 为什么同样是200M宽带,移动可以不要钱,联通却要1000多?
  4. python入门——P51模块:模块内测试、搜索路径和包
  5. Java-Arrays数组操作
  6. activiti 功能概述_子串功能概述
  7. cte公用表表达式_SQL Server中的CTE; 查询公用表表达式
  8. 30天敏捷结果(1):总体认识Getting Result敏捷方法
  9. 周记 2019.3.25~2019.3.31
  10. 超文本标记语言HTML