我有一个NSSearchField,其动作方法通过分析sender参数(字符串)来完成所有搜索工作。
现在,搜索的内容(用于大数组的存储)需要占用大量CPU,这使我的搜索字段冻结了几秒钟。
在其他情况下,我将分离另一个NSThread来防止GUI冻结。但是在这种情况下这是不可能的,因为每次用户在搜索字段中输入另一个字母时,我都会分离另一个(“搜索”)线程。
还有另一种方法可以防止我的NSSearchField冻结吗?
顺便说一句:我的猜测是“否”,因为即使开发人员文档的搜索字段始终冻结:)
最佳答案
我使用GCD。我使用一个异步队列,该作业会定期检查当前搜索模式是否与调用时的模式有所不同,如果有更改,则保全。这似乎工作得很好。