暂停iOS中的活动后台线程

时间:2016-04-21 09:47:09

标签: ios objective-c multithreading suspend

在特定情况下,当我的计时器被触发时,我想暂停所有活动的后台线程并注销该应用程序。我如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

您的后台线程需要通过isCancelled方法检查它是否已被取消...

if ([[NSThread currentThread] isCancelled]) {
    // do cleanup here
    [NSThread exit];
}

你不能在外部杀死线程,因为无法知道线程可能处于什么状态,因此,杀死它会产生不确定的行为。

答案 1 :(得分:0)

  1. 如果您使用GCD,则无论如何都无法停止发送的任务。
  2. 但是如果您尝试使用NSOperationQueue,则可以停止当前未运行的任务。
  3. 如果您使用NSThread或pthread,我认为很难在没有额外努力的情况下阻止它们。
相关问题