美文网首页
异步处理:在GCD中使用顺序队列5

异步处理:在GCD中使用顺序队列5

作者: Dayu大鱼 | 来源:发表于2018-02-09 13:39 被阅读24次

    在GCD中使用顺序队列

    @property(nonatomic,retain)dispatch_queue_t serialQueue;
    
    - (void)viewDidLoad {
        [super viewDidLoad];
       
        self.serialQueue=dispatch_queue_create(DISPATCH_QUEUE_SERIAL, 0);
        ...
        
    
    -(void)bigTaskAction{
    
    
    
        dispatch_async(self.serialQueue, ^{
          
            dispatch_sync(dispatch_get_main_queue(), ^{
                
                [self.myActivityIndicator startAnimating];
           
            });
            
            int updateUIWhen=1000;
           
            for (int i=0;i<10000;i++) {
                NSString*newString=[NSString stringWithFormat:@"i=%i",i ];
                NSLog(@"%@ ",newString);
                if (i==updateUIWhen) {
                    float f =(float)i/10000;
                    NSNumber*percentDone=[NSNumber numberWithFloat:f];
    
                    dispatch_sync(dispatch_get_main_queue(), ^{
                        
                        [self.myProcessView setProgress:[percentDone floatValue ]animated:YES];
                        
                    });
                    updateUIWhen=updateUIWhen+500;
                }
            }
            dispatch_sync(dispatch_get_main_queue(), ^{
                
                [self.myProcessView setProgress:1.0 animated:YES];
    
                [self.myActivityIndicator stopAnimating];
            });
        });
        
    }
    
    

    现在只需要button addtarget 剩下的只需要这一个方法就能实现功能

    相关文章

      网友评论

          本文标题:异步处理:在GCD中使用顺序队列5

          本文链接:https://www.haomeiwen.com/subject/pptujttx.html