码迷,mamicode.com
首页 > 编程语言 > 详细

[爱上Swift] day9:初探swift语言(线程)

时间:2014-10-08 17:42:45      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   使用   ar   for   sp   div   art   

作者:fengsh998
原文地址:http://blog.csdn.net/fengsh998/article/details/30354127
转载请注明出处
 

swift 并没有使用新一套线程,使用OC源有的一套线程。下面以例子来演示一下swift中使用线程。

其用包括常见的:NSThread,NSOperationQueue,GCG

 

import UIKit  
  
  
class swiftThreadDemo : UIViewController  
{  
    var queue = NSOperationQueue()  
//    init()  
//    {  
//        //alloc  
//        super.init()  
//    }  
      
    deinit  
    {  
        //dealloc  
    }  
      
    func testGCDThread()  
    {  
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {  
  
            //这里写需要大量时间的代码  
  
            for var i = 0; i < 100000; i++  
            {  
                println("GCD thread running.")  
            }  
              
            sleep(5);  
  
            dispatch_async(dispatch_get_main_queue(), {  
  
                //这里返回主线程,写需要主线程执行的代码  
                println("这里返回主线程,写需要主线程执行的代码")  
                })  
            })  
    }  
      
    func testNSThread()  
    {  
        //方式一  
        //NSThread.detachNewThreadSelector("threadInMainMethod:",toTarget:self,withObject:nil)  
          
        //方式二  
        var myThread = NSThread(target:self,selector:"threadInMainMethod:",object:nil)  
        myThread.start()  
          
    }  
      
    func threadInMainMethod(sender : AnyObject)  
    {  
        for var i = 0; i < 100000; i++  
        {  
            println("NSThread running.")  
        }  
          
        sleep(5);  
        println("NSThread over.")  
    }  
      
    func testNSOperationQueue()  
    {  
        //func (op: NSOperation!)  
        var mopt = myOperationThread()  
        queue.addOperation(mopt)  
    }  
}  
  
  
class myOperationThread : NSOperation  
{  
    override func start()  
    {  
        super.start()  
    }  
      
    override func main()  
    {  
        for var i = 0; i < 100000; i++  
        {  
            println("NSOperation running.")  
        }  
        println("NSOperation over.")  
    }  
}  

调用:

var st = swiftThreadDemo()  
st.testNSThread()  
sleep(2)  
st.testGCDThread()  
st.testNSOperationQueue()  

  

 
 

[爱上Swift] day9:初探swift语言(线程)

标签:blog   http   io   使用   ar   for   sp   div   art   

原文地址:http://www.cnblogs.com/xiguain/p/4011262.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!