微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

swift开启线程的3种方式其实很简单的

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()  
这就常用开启线程的3种方式

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐