iOS,如何重启NSThread?

时间:2014-08-19 09:10:50

标签: ios nsthread

要重新启动NSSthread,请使用以下代码:

- (IBAction)listen:(id)sender {
thread = [[NSThread alloc] initWithTarget:self selector:@selector(listen1) object:nil];
[thread start];
[thread cancel];
[thread start];
}

但是当我构建并按下此按钮时,我收到了错误:"尝试再次启动该线程" 你能救我吗?

1 个答案:

答案 0 :(得分:3)

方法-cancel不会停止线程,它只是设置取消标记。

  

更改接收方的已取消状态,以表明退出。

     

- (void)cancel

     

此方法的语义与用于NSOperation对象的语义相同。此方法在接收器中设置状态信息,然后由isCancelled方法反映。支持取消的线程应定期调用isCancelled方法来确定线程是否实际上已被取消,如果已经取消则退出。

您只能通过调用[NSThread exit]来阻止线程内的线程。


顺便问一下,你想要达到什么目的?启动单独的线程几乎不是好主意,并且两次启动相同的线程是错误的两次。