Objective-C语言创建更复杂的线程

示例

使用的子类NSThread可以实现更复杂的线程(例如,允许传递更多的参数或将所有相关的辅助方法封装在一个类中)。此外,该NSThread实例可以保存在属性或变量中,并可以查询其当前状态(是否仍在运行)。

本NSThread类支持的方法称为cancel可以从任何线程,那么将被称为cancelled属性YES的线程安全的方式。线程实现可以查询(和/或观察)该cancelled属性并退出其main方法。这可用于正常关闭工作线程。

// 创建一个新的NSThread子类

@interface MyThread : NSThread

// 为需要从调用方传递到新值的值添加属性

//线。线程启动后,调用者不得修改这些内容,以避免

// 线程问题(或必须使用锁使属性成为线程安全的)。

@property NSInteger someProperty;

@end

@implementation MyThread

- (void)main

{

    @autoreleasepool {

        // 主线程方法在这里

        NSLog(@"New thread. Some property: %ld", (long)self.someProperty);

    }

}

@end

MyThread *thread = [[MyThread alloc] init];

thread.someProperty = 42;

[thread start];

           

以上是 Objective-C语言创建更复杂的线程 的全部内容, 来源链接: utcz.com/z/340702.html

回到顶部