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

前端之家收集整理的这篇文章主要介绍了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种方式

猜你在找的Swift相关文章