iPhone – 如何杀死/停止后台线程?

所以我有一个执行循环的方法,因为我的程序工作的方式我正在调用这个方法,

[self performSelectorInBackground:@selector(myMethod:) withObject:arg];

而方法本身,

- (void)myMethod:(id)arg {
    //...

    for (//Loop Conditions) {
        if (stopMorse) {
            break;
        }
        //Do stuff
    }

    //...
}

现在我想允许用户停止运行这个循环,所以有没有办法杀死/停止线程.

我已经尝试添加一个BOOL,但问题是它似乎没有更新,因为它是在一个单独的线程上.阻止此循环运行的最佳方法是什么?

由于this answer to a similar questionthis answer to another similar question中概述的原因,您不应强行终止/停止线程.

应该可以像你一样检查一个布尔值,并且设置布尔值的另一个线程应该没有问题.你可以发布试图设置布尔值的代码吗?

https://stackoverflow.com/questions/4149656/how-to-kill-stop-a-background-thread

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:iPhone – 如何杀死/停止后台线程?