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