加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 01:36:01 所属栏目:百科 来源:网络整理
导读:import UIKit class swiftThreadDemo : UIViewController { var queue = NSOperationQueue() // init() // { // //alloc // super.init() // } deinit { //dealloc } func testGCDThread() { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIOR
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种方式

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读