我是新手,所以请原谅我的任何错误...
我的情况:
- (id)initWith... //Some arguments
有一个返回对象的初始化方法。用参数的值设置它的实例变量做了很多工作。为了最大限度地提高性能,我将工作分成两个线程。一个线程设置一组相关变量,另一个线程设置另一组变量。
- (id)initWith:arguments {
self = [super init];
if (self) {
[NSThread detachNewThreadSelector:@selector(setFirstSetOfVariables:) toTarget:self withObject:argObject];
[self setSecondSetOfVariables:arguments];
//Check if the thread finished its work and return the value
return self;
}
为了方便起见,认为该方法必须设置的两组 var 没有任何关系。那么我的问题是:如何检查第一个线程是否完成?我可以创建一个 BOOL var,但我必须创建一个循环来检查。我也可以调用一个方法来表示它已经准备好了。但由于我不太了解,我不知道在线程内部调用的方法是在主线程中运行还是在另一个线程中运行。对不起。感谢您提供任何信息。