我是否可以选择访问我的应用程序中运行的所有线程?

时间:2012-08-21 12:35:55

标签: iphone ios multithreading ipad nsthread

我使用detachNewThreadSelector方法在我的应用中创建线程。在某些时候,当用户从应用程序注销时,我应该杀死应用程序中所有正在运行的线程。我怎样才能实现它?

2 个答案:

答案 0 :(得分:4)

如果你用detachNewThreadSelector创建一个帖子,你几乎必须让它自己完成:(

如果您希望能够控制后台任务,那么更好的选择是NSOperationQueue - 您可以将取消消息传递给操作。

Apple docs here


编辑:如果您不想使用NSNotificationCenter,您可以设置一个后台线程定期检查的标志,如果设置了它们将自行退出。但是,你必须小心那里的线程安全性:)

答案 1 :(得分:0)

  1. 使用“普通”NSThread构造函数 - (id)initWithTarget:...并保存您的线程对象。
  2. 在线程启动后的某处保存线程对象。
  3. 根本不保存线程对象,只需使用一些您将在线程中检查的单独标志并退出它们。