我有一个方法(让我们称之为运行):
- (void)run
{
// Do some initialisation
// Loop until another thread signals it to exit
while (SHOULD_STILL_LOOP) { ... }
// Clean up code
}
我称之为:
[self performSelectorInBackground:@selector(run)];
实施SHOULD_STILL_LOOP的最佳方法是什么?我应该使用原子属性,NSCondition,调度信号量吗?
也许一些堆叠可以给我一些建议?
感谢。
答案 0 :(得分:0)
我找到了一种方法,就是使用NSThread。
- (void)run:(id)obj
{
while(![[NSThread currentThread] isCancelled]) { ... }
}
- (void)start
{
self.thread = [[NSThread alloc] initWithTarget:self
selector:@selector(run)
object:self.object];
[self.thread start];
}
- (void)stop
{
[self.thread cancel];
self.thread = nil;
}