要重新启动NSSthread,请使用以下代码:
- (IBAction)listen:(id)sender {
thread = [[NSThread alloc] initWithTarget:self selector:@selector(listen1) object:nil];
[thread start];
[thread cancel];
[thread start];
}
但是当我构建并按下此按钮时,我收到了错误:"尝试再次启动该线程" 你能救我吗?
答案 0 :(得分:3)
方法-cancel
不会停止线程,它只是设置取消标记。
更改接收方的已取消状态,以表明应退出。
- (void)cancel
此方法的语义与用于
NSOperation
对象的语义相同。此方法在接收器中设置状态信息,然后由isCancelled
方法反映。支持取消的线程应定期调用isCancelled
方法来确定线程是否实际上已被取消,如果已经取消则退出。
您只能通过调用[NSThread exit]
来阻止线程内的线程。
顺便问一下,你想要达到什么目的?启动单独的线程几乎不是好主意,并且两次启动相同的线程是错误的两次。