zoukankan      html  css  js  c++  java
  • 停止方法iOS CGD 任务开始与结束

    改章节是一篇关于停止方法的帖子

        尾末有demo地址

        1.在Controll中加上一个button

        

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    - ( void )viewDidLoad
    {
         [super viewDidLoad];
         UIButton * tempButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
         [tempButton setFrame:CGRectMake(50, 50, 220, 40)];
         [tempButton setTitle:@ "ClickME"  forState:UIControlStateNormal];
         [tempButton addTarget:self action:@selector(clickButton) forControlEvents:UIControlEventTouchUpInside];
         [self.view addSubview:tempButton];
         // Do any additional setup after loading the view, typically from a nib.
    }

        2.点击button,然后开始两个CGD任务。其中一个在A,1s后停止,停止时将任务B也停止。

        停止方法,cancel这个方法。

        每日一道理
    青春是用意志的血滴和拼搏的汗水酿成的琼浆——历久弥香;青春是用不凋的希望和不灭的向往编织的彩虹——绚丽辉煌;青春是用永恒的执著和顽强的韧劲筑起的一道铜墙铁壁——固若金汤。

        

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    - ( void )clickButton
    {
            
         __block UIView * tempView = [[UIView alloc] initWithFrame:CGRectMake(50, 100, 220, 30)];
         [tempView setBackgroundColor:[UIColor grayColor]];
         [self.view addSubview:tempView];
         [tempView release];
            
         __block  BOOL  cancel = NO;
         //点击以后就会开始行执这个方法
         dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
         dispatch_async(queue, ^{
             int  i = 0;
             while  (i < 1000000000 && cancel == NO) {
                 i++;
             }
             NSLog(@ "Task end: i = %d" , i);
             //这个不会行执,因为在之前,gcd task经已结束
             [tempView removeFromSuperview];
         });
            
         //1s 以后行执这个方法
         double  delayInSeconds = 1.0;
         dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
         dispatch_after(popTime, dispatch_get_main_queue(), ^( void ){
             NSLog(@ "A GCD Task Start" );
             cancel = YES;
             [tempView setBackgroundColor:[UIColor blackColor]];
         });
    }

        3.行运结果

        

    1
    2
    2013-05-08 19:38:35.730 BlockAsync[1880:11303] A GCD Task Start
    2013-05-08 19:38:35.732 BlockAsync[1880:12303] Task end: i = 403577657

        Demo:http://download.csdn.net/detail/take8619702/5345809

    文章结束给大家分享下程序员的一些笑话语录: 手机终究会变成PC,所以ip会比wm更加畅销,但是有一天手机强大到一定程度了就会发现只有wm的支持才能完美享受。就好比树和草,草长得再高也是草,时间到了条件成熟了树就会窜天高了。www.ishuo.cn

  • 相关阅读:
    Postman+Newman+Git+JenKins+钉钉(接口自动化测试持续集成)CI_知识回顾与整理
    GitHub 使用入门
    python中json文件处理涉及的四个函数json.dumps()和json.loads()、json.dump()和json.load()的区分
    python实现:重复列表按重复次数排序
    python中lambda匿名函数的用法
    Python中各种符号的意义
    OSI七层协议和TCP/IP的4层、5层协议
    Jmeter中传参输入位置[chrome中区分是否json传参]
    Jmeter中http cookie Manager、Http Header Manager
    jQuery 获取屏幕高度、宽度
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3069855.html
Copyright © 2011-2022 走看看