刚刚学习GCD并想要一些指导。我想设置一个去抖功能,以便在用户重新登录时,我正在关注的用户的注销通知不会出现5分钟。在这种情况下,我希望延迟注销用户界面通知被添加到超时队列以从现在起5分钟后执行 - 除非该用户重新登录,在这种情况下我将取消队列中的特定通知。 (注意这些示例中的用户不是我 - 当前登录的活动用户)。
我应该使用哪种类型的GCD队列?
示例
How can I debounce a method call?
我还发现了一个使用计时器的例子 - 与封面下的GCD通话有什么不同或相同?
答案 0 :(得分:0)
GCD
最适合制定一些即将完成的工作,在此之后您需要完成一些工作,之后不做任何调整。
您想要的简单版本是使用NSTimer
。如果用户登录,则会使计时器无效。如果计时器存活并触发,则会发送通知。
如果由于某种原因,您需要在其中涉及额外的线程,请查看NSOperationQueue
而不是GCD
。这使您可以检查队列并应用取消逻辑。