Ios 取消NSThread
以下是我创建线程的方式:Ios 取消NSThread,ios,iphone,objective-c,Ios,Iphone,Objective C,以下是我创建线程的方式: readFromWebThread = [[NSThread alloc] initWithTarget:self selector:@selector(loadThread:) object:urlStr]; 我就是这样阻止它的: if ([readFromWebThread isExecuting]) { [readFromWebThread cancel]; } 这就是我在线程中执行的: -(void)loadThread:(NSString*)url
readFromWebThread = [[NSThread alloc] initWithTarget:self selector:@selector(loadThread:) object:urlStr];
我就是这样阻止它的:
if ([readFromWebThread isExecuting]) {
[readFromWebThread cancel];
}
这就是我在线程中执行的:
-(void)loadThread:(NSString*)urlStr {
while (YES) {
//MyStuff
[NSThread sleepForTimeInterval:kSleepBetweenLoading];
}
}
问题是,即使调用cancel thread方法,线程也会继续调用。
你知道什么是错误吗?来自文档:
-取消:“更改接收器的已取消状态,以指示它应退出。”
==>您必须执行线程的取消!如果它睡着了,它永远不会被取消
e、 g
从文档中:
-取消:“更改接收器的已取消状态,以指示它应退出。”
==>您必须执行线程的取消!如果它睡着了,它永远不会被取消
e、 g
从文档中:
-取消:“更改接收器的已取消状态,以指示它应退出。”
==>您必须执行线程的取消!如果它睡着了,它永远不会被取消
e、 g
从文档中:
-取消:“更改接收器的已取消状态,以指示它应退出。”
==>您必须执行线程的取消!如果它睡着了,它永远不会被取消
e、 g
-取消
仅设置一个标志。你必须检查旗子
while (!self.isCancelled) {
// MyStuff
}
-取消
仅设置一个标志。你必须检查旗子
while (!self.isCancelled) {
// MyStuff
}
-取消
仅设置一个标志。你必须检查旗子
while (!self.isCancelled) {
// MyStuff
}
-取消
仅设置一个标志。你必须检查旗子
while (!self.isCancelled) {
// MyStuff
}
对OP的注释:“如果它睡着了,它就永远不会被取消。不要只睡它”对OP的注释:“如果它睡着了,它就永远不会被取消。不要只睡它”对OP的注释:“如果它睡着了,它就永远不会被取消。不要只睡它”