`
maricoliu
  • 浏览: 55281 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Objective-c中线程NSThread的使用

    博客分类:
  • Mac
阅读更多

NSThread使用

1.创建并启动线程

 

thread = [[NSThread alloc]initWithTarget:self selector:@selector(startMonitor) object:nil];  
[thread start]; 

  

2.停止线程

    先向线程发送cancel消息,将线程标记为停止,然后在合适的地方判断线程是否标记为退出,如果是,则发送exit消息,真正退出线程

 

- (void)getInfo:(id)sender  
{    
    if (!running) {  
        NSLog(@"start monitor");  
        thread = [[NSThread alloc]initWithTarget:self selector:@selector(startMonitor) object:nil];  
        [thread start];  
        running = true;  
    }  
    else{  
        NSLog(@"stop monitor");  
        [thread cancel];  
        running = false;  
    }  
}  
  
- (void) startMonitor  
{  
    while (true) {  
        if ([[NSThread currentThread] isCancelled]) {  
            [NSThread exit];  
        }  
        //do your things here  
        sleep(1);  
    };  
}  

 

分享到:
评论

相关推荐

    Objective-C高级编程 iOS与OS X多线程和内存管理_Objective-C_ios_

    书中还可能涵盖Block(代码块)的使用,这是Objective-C中一种强大的语法特性,常用于多线程和异步编程,因为它可以捕获和封装变量的上下文。另外,可能会讲解到Cocoa Touch和Cocoa框架中的线程安全类和方法,以及...

    Object-C语言教程-提供了 Objective-C 的基本语法和一些示例,希望能够帮助你快速入门 Objective-C

    作为C语言的一个超集,Objective-C允许开发者直接使用C语言代码。此外,它还借鉴了C++的一些特性,尽管它并非C++的直接子集。 Objective-C由苹果公司在其操作系统macOS和iOS的开发中广泛使用,是这两个平台上应用...

    Objective-C高级编程 iOS与OS X多线程和内存管理

    《Objective-C高级编程:iOS与OS X多线程和内存管理》是一本深入探讨Objective-C在iOS和OS X平台上的核心特性的书籍。本书重点聚焦于多线程和内存管理两个关键领域,对于iOS和macOS应用开发人员来说,这是理解和优化...

    cocoa objective-c 教程 macos

    9. 多线程编程:如何在Objective-C中使用NSThread、NSOperationQueue或GCD(Grand Central Dispatch)进行多线程操作。 10. 应用程序生命周期:描述Mac应用从启动到关闭的过程,以及如何响应各种生命周期事件。 ...

    Objective-C多线程与并发编程基础及其实现

    内容概要:本文全面介绍了 Objective-C 中多线程与并发编程的基础知识和技术实现。

    Objective-C编程(第四版)英文原版

    9. **多线程编程**:Objective-C支持多线程编程,包括NSThread、NSOperationQueue和GCD。理解如何正确处理线程安全和同步问题对于编写高性能应用至关重要。 10. **Cocoa Touch和Cocoa设计模式**:这两种设计模式是...

    Cocoa多线程开发Objective-C详解

    总的来说,Cocoa多线程开发在Objective-C中的应用主要通过GCD来实现,开发者在实际应用中应当根据任务的具体需求选择合适的队列类型,并且合理使用同步和异步的执行方式来保证程序的高效和稳定运行。随着iOS系统和...

    objective-c面试大全

    12. **线程相关函数**:Objective-C中可以使用[NSThread detachNewThreadSelector:toTarget:withObject:]等方法创建新线程。 13. **自定义控件**:开发者可以创建自定义UIView子类,利用CoreGraphics或直接在...

    [Big Nerd Ranch Guides] Objective-C Programming

    - **C语言兼容性**: Objective-C是基于C语言的超集,这意味着所有的C代码都是Objective-C代码的一部分。开发者可以方便地在Objective-C程序中混用C代码。 - **消息发送机制**: Objective-C中的方法调用实际上是...

    Cocoa and Objective-C cookbook

    本书将详细介绍Objective-C的基本语法、面向对象编程(OOP)特性以及如何使用Objective-C与Cocoa框架进行交互。此外,读者还将了解到如何利用Objective-C中的消息传递机制来实现动态类型和运行时多态性。 **3. 用户...

    objective-c 基础教程 (第二版)

    16. **多线程与并发**:了解NSOperationQueue、NSThread、GCD等多线程技术,以及它们在优化应用程序性能中的应用。 17. **Swift与Objective-C的交互**:Swift是苹果后来推出的语言,但Objective-C项目仍广泛存在。...

    Objective-C Mac动态钟

    【Objective-C Mac动态钟】是基于Mac平台使用Objective-C编程语言实现的一个特色应用,它在一个NSView视图中展示了一个动态的时钟效果。时钟的指针会随着时间的流逝而进行实时的秒分时摆动,从而为用户提供了直观的...

    实现待办事项列表的 Objective-C代码、建议及注意项.docx

    - **NSThread与GCD**:学习如何使用NSThread和GCD实现多线程编程。 - **操作队列**:掌握操作队列的基本概念和使用方法。 4. **网络编程**: - **NSURLSession**:掌握如何使用NSURLSession发起HTTP请求和处理...

    Objective-C的另类教程

    在Objective-C中,多线程主要通过NSThread、NSOperation和NSInvocationOperation来实现。多线程允许程序同时执行多个任务,避免主线程被阻塞,尤其对于UI更新和耗时操作来说至关重要。例如,网络请求通常在后台线程...

    Objective-C 思维导图.pdf

    - **创建第一个 Objective-C 项目**:在 Xcode 中选择“Create a new Xcode project”,然后选择 Objective-C 作为项目的主要语言,按照提示完成项目创建。 #### 2. 语法基础 - **2.1 数据类型** - **基本数据...

    Objective-C的NSOperation多线程类基本使用指南剖析.pdf

    NSOperation是Objective-C中用于实现多线程编程的一个高级接口,它是苹果的Foundation框架的一部分,提供了比直接使用NSThread更灵活的并发控制机制。NSOperation不仅封装了具体的操作任务,还支持操作的依赖关系、...

    Objective-C面试题.pdf

    - **异常**:Objective-C支持C语言风格的错误处理,但在iOS开发中较少使用。 #### 二、中级技术题 1. **Category与Extension**: - **Category**:为现有类添加新方法的一种方式,不改变原始类定义。 - **...

    oc宝典oc宝典oc宝典

    Objective-C(简称OC)是苹果平台的主要开发语言,它基于C语言并扩展了面向对象的功能,使得创建复杂的软件系统变得更加便捷。本宝典旨在帮助开发者全面掌握OC的语法、特性以及最佳实践,从而提升开发效率和应用质量...

    Objective-C的NSOperation多线程类基本使用指南

    Objective-C的NSOperation是iOS开发中的一个多线程处理框架,它提供了一种更为灵活和可管理的方式来执行异步任务。NSOperation是Apple的Foundation框架的一部分,用于构建具有依赖关系和并发控制的操作。以下是对...

Global site tag (gtag.js) - Google Analytics