一個典型的結束子線程的方法: 用 isFinished 檢測子線程是否被完全kill掉
-(IBAction)btnBack:(id)sender { //釋放內存 僅僅remove 並不會觸發內存的釋放 if (!(mySecondThread==nil) && !myFirstThread.isCancelled) { [myFirstThread cancel]; //等子線程結束再跳出循環 int i=0; while (!myFirstThread.isFinished){ NSLog(@"mySecondThread還沒有結束 %i",i++); } } if (!(mySecondThread==nil) && !mySecondThread.isCancelled) { [mySecondThread cancel]; //等子線程結束再跳出循環 int j=0; while (!mySecondThread.isFinished){ NSLog(@"mySecondThread還沒有結束 %i",j++); } }
// 其它操作
}