GCD-使用方法

代码:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        //在后台进行网址的解析操作
        NSURL * url = [NSURL URLWithString:@"http://www.baidu.com"];
        NSError * error;
        NSString * data = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];
        if (data != nil) {
            dispatch_async(dispatch_get_main_queue(), ^{
                //成功,跳转回主界面
                NSLog(@"call back, the data is: %@", data);
            });
        } else {
            //失败,返回失败提示。
            NSLog(@"error when download:%@", error);
        }
    });

}

输出:

2015-07-15 21:51:37.902 CGD-使用[1719:81744] call back, the data is: <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body style=‘margin:0px;overflow-x:hidden;overflow-y:hidden;‘><iframe id=‘i‘ src="http://www.baidu.com/?tn=96181616_hao_pg" scrolling=auto width=‘100%‘ height=‘100%‘ frameborder=‘no‘ onload=‘‘style=‘position:fixed;‘></iframe></body></html>

参考资料

http://www.cnblogs.com/pure/archive/2013/03/31/2977420.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-01 04:29:53

GCD-使用方法的相关文章

GCD 延时方法 (Swift)

func delay(delay:Double, closure:()->()) { dispatch_after( dispatch_time( DISPATCH_TIME_NOW, Int64(delay * Double(NSEC_PER_SEC)) ), dispatch_get_main_queue(), closure) } //And now you can talk like this: delay(0.4) { // do stuff } GCD 延时方法 (Swift)

[New learn]GCD其他方法的使用

https://github.com/xufeng79x/GCDDemo 1.简介 在前面的两篇博文中我介绍了GCD的一般使用方法和死锁的分析调查.本博文中继续讲解GCD的其他比较常用的几个使用方法. 2.线程间的通信 线程间通信意指如何在当前线程中去通知或者去调度其他线程完成任务. 比较经典的一个用例为将耗时操作放在某个线程中(非主队列任务)然后完成后去更新控件(主队列任务). -(void)loadImage { dispatch_async(dispatch_get_global_queu

iOS多线程开发--NSThread NSOperation GCD

多线程 当用户播放音频.下载资源.进行图像处理时往往希望做这些事情的时候其他操作不会被中 断或者希望这些操作过程中更加顺畅.在单线程中一个线程只能做一件事情,一件事情处理不完另一件事就不能开始,这样势必影响用户体验.早在单核处理器时期 就有多线程,这个时候多线程更多的用于解决线程阻塞造成的用户等待(通常是操作完UI后用户不再干涉,其他线程在等待队列中,CPU一旦空闲就继续执行, 不影响用户其他UI操作),其处理能力并没有明显的变化.如今无论是移动操作系统还是PC.服务器都是多核处理器,于是“并行

iOS多线程 NSThread/GCD/NSOperationQueue

http://www.cnblogs.com/kenshincui/p/3983982.html iOS开发系列--并行开发其实很容易 2014-09-20 23:34 by KenshinCui, 9738 阅读, 19 评论, 收藏,  编辑 --多线程开发 概览 大家都知道,在开发过程中应该尽可能减少用户等待时间,让程序尽可能快的完成运算.可是无论是哪种语言开发的程序最终往往转换成汇编语言进而解释成机器码来执行.但是机器码是按顺序执行的,一个复杂的多步操作只能一步步按顺序逐个执行.改变这种

选择 GCD 还是 NSTimer ?

我们常常会延迟某件任务的执行,或者让某件任务周期性的执行.然后也会在某些时候需要取消掉之前延迟执行的任务. 延迟操作的方案一般有三种: 1.NSObject的方法: 2.使用NSTimer的方法: 3.使用GCD的方法: 一般情况下,我们选择使用GCD的dispatch_after. 因为如果不用GCD,编码需要注意以下三个细节: 1.必须保证有一个活跃的runloop. performSelector和scheduledTimerWithTimeInterval方法都是基于runloop的.我

细讲GCD 给自己留着看

Skip to content PersonalOpen sourceBusinessExplore Sign upSign in PricingBlogSupport This repository Watch77 Star743 Fork196 ming1016/study CodeIssues 2Pull requests 0WikiPulseGraphs 细说GCD(Grand Central Dispatch)如何用 ming1016 edited this page on 18 Ja

iOS 多线程 NSThread NSOperation NSOperationQueue GCD 线程锁 线程阻塞

iPhone中的线程应用并不是无节制的,官方给出的资料显示,iPhone OS下的主线程的堆栈大小是1M,第二个线程开始就是512KB,并且该值不能通过编译器开关或线程API函数来更改,只有主线程有直接修改UI的能力,所以一些数据层面可以开辟线程来操作进行,iOS线程的操作方法有NSThread NSOperation NSOperationQueue GCD: NSThread方法有 //NSThread自动 - (IBAction)didClickNSThreadAutoButtonActi

iOS 线程之GCD的高级用法

之前的一篇关于线程的blog已经为大家介绍了GCD的简单使用方式及例子说明,今天由于项目中有特殊的应用GCD的实例,为大家介绍两种特殊需求的使用GCD的方法. 目的:实现一件事情做完,再做下一件事情,确保函数的执行周期. 解决方案:提供以下2种解决方案 1.创建barrier等待线程 dispatch_async(dispatch_get_main_queue(), ^{ [self ActionFirst]; }); dispatch_barrier_async(dispatch_get_ma

iOS开发中GCD在多线程方面的理解

GCD为Grand Central Dispatch的缩写. Grand Central Dispatch (GCD)是Apple开发的一个多核编程的较新的解决方法.在Mac OS X 10.6雪豹中首次推出,并在最近引入到了iOS4.0. GCD是一个替代诸如NSThread等技术的很高效和强大的技术.GCD完全可以处理诸如数据锁定和资源泄漏等复杂的异步编程问题. GCD可以完成很多事情,但是这里仅关注在iOS应用中实现多线程所需的一些基础知识. 在开始之前,需要理解是要提供给GCD队列的是代

iOS延时执行的三种方法

@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); 1. NSTimer,可以设置