zoukankan      html  css  js  c++  java
  • 延时执行的常用方法

    1、最简单的调用隐式函数方法

    [self performSelector:@selector(deleyMethod) withObject:nil afterDelay:5.0];

    必须在主线程中执行,非阻塞线程方式。

    2、NSThread

    [NSThread sleepForTimeInterval:6.0];

    主线程和子线程都可执行,但会阻塞线程,导致UI卡顿。一般用在特殊的阻塞线程执行时使用。

    3、GCD

    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 5.0 * NSEC_PER_SEC);    
    
      dispatch_after(popTime, dispatch_get_main_queue(), ^(void){  
    
         // code to be executed on the main queue after delay    
    
      }); 

    最常用方法之一,可以在参数中选择执行的线程。是一种非阻塞的执行方式。

    4、NSTimer

    [NSTimer scheduledTimerWithTimeInterval:3.0f target:self selector:@selector(delayMethod) userInfo:nil repeats:NO]; 

    必须在主线程中执行。是一种非阻塞的执行方式,通过NSTimer类的- (void)invalidate;取消执行。

  • 相关阅读:
    向 DataGridView 的行集合中添加行
    添加form窗口最大化最小化事件
    转义字符表
    键盘输入变简单了
    数字9X9的表格
    统计你输入的任意字符
    一个九九表
    用冒泡法排序
    学生会
    任意排序几个数
  • 原文地址:https://www.cnblogs.com/luluwei/p/6117549.html
Copyright © 2011-2022 走看看