当前位置:  开发笔记 > 编程语言 > 正文

睡NSThread Vs. GCD派遣之后

如何解决《睡NSThreadVs.GCD派遣之后》经验,为你挑选了1个好方法。

也许这个问题之前已经以不同的形式提出过.但我认为我的看法不同.我正在为整个代码库和大量重构做一些优化任务,这也将为代码的可读性提供服务.

所以我发现[NSThread sleepForTimeInterval:]方法写在某处,对于延迟,我总是使用GCD的dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(<#delayInSeconds#> * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{})方法.那么问题是哪个更好?



1> rmaddy..:

这是一个巨大的差异.

[NSThread sleepForTimeInterval:]

阻止当前线程.如果当前线程是主线程,这很糟糕.根据你在做什么,它可能在其他线程上很好或很糟糕.

dispatch_after

不会阻止当前线程.该块排队等待将来在指定队列上运行,而当前线程继续以其快乐方式继续.

没有任何特定的背景,我会说dispatch_after在几乎所有情况下这都是更好的方法.

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有