草庐IT

async_wait

全部标签

iOS 单元测试 : Wait for Time Interval with Expectations

我正在尝试更新我的异步单元测试以使用新的XCTestExpectation接口(interface),而不是手动旋转运行循环。我的单元测试以前使用函数waitForBlock、finishBlock和waitForTimeInterval:,这只是一个调用finishBlock的便捷方法在指定的时间之后。我正在尝试更新此设置以使用预期。使用waitForBlock+finishBlock语义的测试在被waitForExpectationsWithTime:handler:和替换后都按预期工作>fulfill,但我的替换waitForTimeInterval:的解决方案似乎不起作用。-(

objective-c - GCD : How to remove waiting tasks from serial queue?

首先我创建一个这样的串行队列staticdispatch_queue_tqueue=dispatch_queue_create("myQueue",DISPATCH_QUEUE_SERIAL);然后,在某个未知的时间点,一个任务像这样被添加到队列中dispatch_async(queue,^{//dosomething,whichtakessometime});如果第一个任务还没有完成,新任务将等到第一个任务完成(这当然是串行队列的用途)。但是如果我向队列中添加5个新任务,而原来的第一个任务仍在运行,我不想执行新任务1号,然后2号,然后3号等等,但是想去掉任务1到4,等原来的第一个任务

ios - XCTestCase:WAITING应用空闲

我的UI测试失败了,因为测试会无休止地等待,直到应用空闲。我看不到后台有任何事情发生,例如加载微调器。它只出现在一个选项卡上。所有其他选项卡均可点击,但屏幕3上的测试失败。我在屏幕3上捕获测试后单击另一个选项卡,测试恢复并成功完成。有什么想法吗?-(void)testExample{XCUIElementQuery*tabBarsQuery=self.app.tabBars;[tabBarsQuery.buttons[@"Screen2"]tap];[tabBarsQuery.buttons[@"Screen3"]tap];[tabBarsQuery.buttons[@"Screen1

iOS TestFlight CI,自动化 beta "waiting"过程?

假设您上传构建1192...等待一段时间后,您会收到电子邮件....只有这样您才能最终在itunesconnect.apple.com网站上看到以下...然后您可以最后单击“将组添加到此构建”,最后单击“提交以供审核”。我的问题:有没有办法自动等待-知道什么时候可以提交?因此,除了查看电子邮件之外,还有什么方法可以自动“知道它已完成处理”吗?例如,Apple会发送有关API版本的信息吗?还是电子邮件实际上是唯一且唯一的了解方式?如果没有,是否有任何现有系统可以劫持您的电子邮件或者可能轮询服务器/API/其他任何东西,以了解何时“正在处理”完成”?再一次,这里的具体问题是......有什

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是串行的,那怎么可能

主线程上的 IOS semaphore_wait_trap 导致 UI 挂起

我在异步(串行)工作队列中有一个长时间运行的函数。我知道有时这个函数会卡在特定的openCV调用中。由于某种原因,此挂起也导致主线程挂起。暂停并进入Debug模式时,我看到调用了semaphore_wait_trap()在主线程(队列)上我可以在Debug模式下挂起挂起的线程(我的工作队列),然后这个陷阱就会消失,GUI在手机上再次变得有响应。取消暂停工作线程后,GUI会响应1-2秒(我怀疑直到再次激活该线程),然后UI再次变得无响应。此线程不对主线程/队列进行dispatch_sync()调用IOS是否有可能因为worker长时间运行而暂停主线程(“捕获”它)?我可以强制它移除blo

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