草庐IT

iphone - 使用 dispatch_async 加速搜索?

我正在尝试加快我的应用搜索速度,但当有大量数据时它会出现滞后。所以我试图通过使用dispatch_async而不是dispatch_sync在UI上拆分搜索Predicate原因没有什么不同如果我使用它。问题是当我使用dispatch_async时,应用程序有时会崩溃,因为[__NSArrayIobjectAtIndex:]:index"17"beyondbounds。我现在发生这种情况是因为可以说第一个仍然有效并重新加载tableView并继续搜索将根据结果更改数组大小所以在这种情况下“崩溃”:(这是我的代码:dispatch_async(myQueue,^{searchArray=

ios - 使用 dispatch_async 或 performSelectorOnMainThread 在主线程上执行 UI 更改?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:GrandCentralDispatch(GCD)vs.performSelector-needabetterexplanation要在主线程上执行“stuff”,我应该使用dispatch_async还是performSelectorOnMainThread?是否有首选方式、正确/错误方式和/或最佳做法?示例:我在NSURLConnectionsendAsynchronousRequest:urlRequest方法的block内执行一些逻辑。因为我正在对主视图执行一些操作,例如呈现UIAlertView,所

objective-c - 为什么使用 AFNetworking 而不是 dispatch_async?

当异步调用可以简单地使用GCD完成时,为什么要使用AFNetworking的异步方法?dispatch_async(bgQ,^{//NSURLConnectioncodedispatch_async(dispatch_get_main_queue(),^{//UIcode});}); 最佳答案 这在AFNetworkingFAQ的顶部有详细的回答。:WhileNSURLConnectionprovides+sendAsynchronousRequest:queue:completionHandler:and+sendSynchron

async-validator详细用法

sync-validator是一个表单的异步验证的第三方库。官方文档npmiasync-validatorimportSchemafrom'async-validator'constdescriptor={userName:{type:'string',required:true},pass:{type:'string',required:true}}constvalidator=newSchema(descriptor)传入验证规则对象,可以新建一个验证器对象。validate方法验证器对象的validate方法用于验证数据是否符合验证规则。如验证一个空对象,是否符合验证规则validato

iphone - 在 Grand Central Dispatch 中使用串行队列的 dispatch_async 与 dispatch_sync

好吧,我喜欢GrandCentralDispatch并在使用它后取得了相对成功,但这是我不完全理解的事情。假设我已经使用创建了自己的串行队列dispatch_queue_tmyQueue;myQueue=dispatch_queue_create("myQueue",NULL);之后我这样做:dispatch_async(myQueue,^{[selfdoStuff1];});//andafewlineslater...dispatch_sync(myQueue,^{[selfdoStuff2];});第一个调度是异步的。那么,它会同时完成,对吧?如果myQueue是串行的,那怎么可能

objective-c - dispatch_async 并在原始队列上调用完成处理程序

我看过一些相关的问题,但似乎没有一个能回答这个问题。我想写一个方法来在后台做一些工作。我需要此方法在用于原始方法调用的同一线程/队列上调用完成回调。-(void)someMethod:(void(^)(BOOLresult))completionHandler{dispatch_queue_tcurrent_queue=//???//somesetupcodeheredispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{BOOLok=//someresult//dosomelongru

ios - main_queue 上的 dispatch_async?

我看过这段代码:dispatch_async(dispatch_get_main_queue(),^{[selfdoSomeNetworkStuff];});这对我来说似乎没有多大意义。编辑:澄清我的问题的条件:对dispatch_async的调用是从主线程执行的。发送的消息doSomeNetworkStuff是繁重的worker任务。...并且不仅仅是UI更新任务。当然可以调度,但是使用主队列只会将调度的任务拉回ui线程并阻塞它。拜托,我错过了什么吗?谢谢。 最佳答案 dispatch_async让您的应用在多个队列上运行任务,因

ios - 在 dispatch_async 函数中使用弱 self

我阅读了很多关于使用__weakself的帖子内dispatch_async,现在我有点困惑。如果我有:self.myQueue=dispatch_queue_create("com.biview.core_data",NULL);dispatch_async(self.myQueue,^(void){if(!self.var1){self.var1=...;}dispatch_async(dispatch_get_main_queue(),^(void){if([self.var2superview]){[self.var2removeFromSuperview];}[self.La

ios - 串行队列上的 dispatch_async 和 dispatch_sync 之间的区别?

我创建了一个这样的串行队列:dispatch_queue_t_serialQueue=dispatch_queue_create("com.example.name",DISPATCH_QUEUE_SERIAL);这样调用dispatch_async有什么区别dispatch_async(_serialQueue,^{/*TASK1*/});dispatch_async(_serialQueue,^{/*TASK2*/});dispatch_sync在这个串行队列上这样调用?dispatch_sync(_serialQueue,^{/*TASK1*/});dispatch_sync(_

flutter - flutter/dart : Any downsides to async/await vs. raw Future API 中的异步模式?

在Flutter/Dart应用程序中处理Futures的最佳方式是什么。处理原始的Futureapi,还是使用await的异步函数?是否有任何优点/缺点,还是完全取决于个人喜好?似乎AngularDartProjecthastriedtogetrid由于生成的javascript代码的复杂性,异步/等待。这显然不是Flutter应用程序关心的问题。但有时我认为Futureapi的表现力(和恕我直言的功能风格)比处理异步函数更有优势。是否有任何技术原因可以避免使用async/await糖来支持直接处理Futureapi?(顺便说一句,我也尝试从flutter-devmailinglist