ios - 如何在 iOS7 中停止线程(由 dispatch_queue_create 创建)

标签 ios objective-c multithreading queue grand-central-dispatch

我在我的 iOS 应用程序中创建了这个线程,我想停止它:

dispatch_queue_t myDispatch = dispatch_queue_create("com.myqueue", DISPATCH_QUEUE_CONCURRENT);

其中的myDispatch线程分别调用dispatch_global_queue和dispatch_main_queue执行繁重的操作和图形操作。 但是为了响应应用程序中的用户操作,可以调用另一个函数,该函数使用另一个与 myDispatch 非常相似的队列。如果 myDispatch 线程终止,则没有问题,但此调用也可能在 myDispatch 线程执行期间发生,因此我的应用程序崩溃,因为两个线程都使用相同的数组。 有没有办法在线程终止前停止或终止线程?我想终止当前运行的线程并启动新线程。

最佳答案

如果你想取消/停止后台工作,你应该使用 NSOperation,因为据我所知,一旦你使用 GCD 发送一个 block ,你就会失去对它的控制。

关于ios - 如何在 iOS7 中停止线程(由 dispatch_queue_create 创建),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23913600/

相关文章:

multithreading - 我应该如何使用 MvvmCross-SQLite Community Edition 在多线程应用程序中设置我的连接?

ios - 防止 UIPopoverController 覆盖 ADBannerView

ios - CGGradient 使用颜色组件和 alpha channel 创建

objective-c - 一起旋转 X、Y 和 Z 轴

iOS Obj-C 将字节数组转换为 plist 到字符串

c# - 如何杀死一个线程?

c# - Interlocked.Increment 一个整数数组

ios - 如何在不隐藏 tabBar 的情况下呈现 View Controller

ios - UIButton 文本出现一段时间,它在 ios 中显示另一个空文本?

ios - 使用 Storyboard的 ios View Controller 的通用基类