zoukankan      html  css  js  c++  java
  • 初探swift语言的学习笔记五(线程)

    作者:fengsh998
    原文地址:http://blog.csdn.net/fengsh998/article/details/30354127
    转载请注明出处
    假设认为文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢!


    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()


  • 相关阅读:
    字符串的长度 -- js
    导入drupal中文语言包
    ubuntu修改iP地址
    人生需要苦难和敌人
    Drupal.theme未解之谜
    如何定义带下标的js数组
    smtp admin email 似乎可以考虑在
    js中的apply 和 call
    js 点号 中括号
    代码调试
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4036975.html
Copyright © 2011-2022 走看看