- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个选择器方法,它在使用 dispatch_async
调用的两个不同线程中的两个不同库中搜索特定文本。
现在这个选择器被绑定(bind)到一个文本字段,一旦一些字符发生变化,我们就可以查询库中的文本。
现在搜索需要一些时间,比如 0.3 - 0.4 秒,如果在输入另一个字符之前第一次搜索未完成,我想取消搜索并在文本字段中重新开始新字符。
那么在选择器上调用 cancelPreviousPerformRequestsWithTarget
是否会取消内部线程和库调用...?
最佳答案
没有。 cancelPreviousPerformRequestsWithTarget
与通过 GCD 分派(dispatch)的 block 无关(即 dispatch_async
)。它取消了以前的调用使用 -performSelector:withObject:afterDelay:
在特定的 NSRunLoop
上安排选择器。此外,它不能取消那些已经在进行中的调用,如果它们仍在等待开始,它只能阻止它们开始。
无论使用何种方法 dispatch ,都无法(安全地)强制取消飞行操作。操作本身必须支持取消能力,通常是在其工作期间定期检查标志,如果标志表明操作应该取消,则提前返回。
因为不可避免地会有人说 NSOperation
支持取消,所以我现在不妨通过指出 NSOperation
的取消来阻止它支持仍然需要被取消的操作定期检查标志并有意提前返回,只是 NSOperation
具有提供标志的 cancelled
属性为你。为了使它对你有用,你的代码必须知道它是作为 NSOperation
的一部分执行的,并且它必须有一个指向特定 NSOperation 的指针
它作为其中的一部分执行,并且它仍然必须定期检查 NSOperation
的 cancelled
属性并提前返回,以便“支持取消。”
在非垃圾收集运行时取消没有免费的午餐。
关于ios - 使用目标 : on a selector cancel internal method calls as well? 调用 cancelPreviousPerformRequests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29387404/
正如标题所述,出于某种原因,以下(简化的)代码不起作用: extension InputView: { func updateTable(text: String) {
我有一个选择器方法,它在使用 dispatch_async 调用的两个不同线程中的两个不同库中搜索特定文本。 现在这个选择器被绑定(bind)到一个文本字段,一旦一些字符发生变化,我们就可以查询库中的
我是一名优秀的程序员,十分优秀!