草庐IT

dispatch-async

全部标签

ios - dispatch_semaphore_wait 不等待信号量

我开发了以下方法,用于检查应用程序与服务器通信的能力。该方法执行一个简单的查询,并且知道如果得到结果,应用程序应该已连接(基本的ping机制)。-(BOOL)isAppConnected{__blockBOOLisConnected=NO;dispatch_semaphore_tsemaphore=dispatch_semaphore_create(0);[[SFRestAPIsharedInstance]performSOQLQuery:@"SELECTidFROMAccountLIMIT1"failBlock:^(NSError*e){isConnected=NO;NSLog(@"

Flutter/Dart第04天:Dart异步编程(Future和async/await)

Dart官网代码实验室:https://dart.dev/codelabs/async-await重要说明:本博客基于Dart官网代码实验室,但并不是简单的对官网文章进行翻译,我会根据个人研发经验,在覆盖官网文章核心内容情况下,加入自己的一些扩展问题和问题演示和总结,包括名称解释、使用场景说明、代码样例覆盖、最后完整的场景编程等。启蒙:错误的异步编程样例下面是一个错误的异步编程样例,大概过程:通过模拟网络API获取订单ID,然后组织订单ID文案,最终输出问题。我们期望最终输出的是正确的订单ID文案,可结果并不符合我们的期望:订单ID并不是T2023092900001,而是Instanceof'

ios - 调度同步的目的是什么?

我很清楚dispatch_async队列在执行什么,但我不清楚dispatch_sync的目的是什么。例如:这之间有什么区别:NSLog(@"A");NSLog(@"B");还有这个:dispatch_sync(dispatch_get_main_queue(),^{NSLog(@"A");});NSLog(@"B");据我所知,两种方式的输出都是A,然后是B。因为同步是按照写入的顺序执行的。谢谢。 最佳答案 顾名思义,dispatch_sync可以同步要执行的任务,即使它们不在主队列上执行也是如此。SahebRoy's答案只对了一

ios - 执行 NSURLRequest 和响应委托(delegate)与使用 dispatch_async 有什么区别?

我正在努力解决异步问题;分派(dispatch)、多线程、运行循环等。有什么区别:1)在给定的方法中创建一个NSURLRequest和NSURLConnection,并让它执行并响应委托(delegate)方法(didReceiveResponse、didReceiveData、connectionDidFinishLoading等),以及2)创建一个block并让它dispatch_async?使用第一种方法,我可以访问委托(delegate)方法(我仍然可以访问那些使用分派(dispatch)的方法吗?),并且委托(delegate)方法的执行在触发(或接近触发)时执行。使用blo

ios - 主线程在 viewDidLoad 中的并发队列上执行 dispatch_async,或者在方法内执行事务

因此,在一些帮助下,我更加清楚嵌套GCD在我的程序中是如何工作的。原帖在:MakingsureI'mexplainingnestedGCDcorrectly但是,您不需要阅读原始帖子,但基本上这里的代码在后台运行数据库执行并且UI是响应式的:-(void)viewDidLoad{dispatch_queue_tconcurrencyQueue=dispatch_queue_create("com.epam.halo.queue",DISPATCH_QUEUE_CONCURRENT);dispatch_queue_tserialQueue=dispatch_queue_create("c

async/await 与console(C#)

问题:上一篇async/await致WPF卡死问题(https://www.cnblogs.com/stephen2023/p/17725159.html),介绍主线程阻塞,async/await导致卡死问题,同样的代码在console下却并不会出现卡死。staticStopwatchsw=newStopwatch();staticvoidlog(stringmessage){Console.WriteLine($"{sw.ElapsedMilliseconds}:{message}byThread:{Thread.CurrentThread.ManagedThreadId}");}stati

C#异步编程(async和await)

在C#中,如果需要I/O绑定(例如从网络请求数据、访问数据库或读取和写入到文件系统),则需要利用异步编程。还可以使用CPU绑定代码(例如执行成本高昂的计算),对编写异步代码而言,写法简单易用。异步编程其实也就是Task实现的多线程。以下主要介绍C#异步编程(async和await)。1、异步编程简介异步编程的核心是Task和Task对象,这两个对象对异步操作建模。它们受关键字async和await的支持。在大多数情况下模型十分简单:对于I/O绑定代码,等待一个在async方法中返回Task或Task的操作。对于CPU绑定代码,等待一个使用Task.Run方法在后台线程启动的操作。通过使用异步编

ios - 在 ARC 下使用 dispatch_write 将 NSData 写入后台唯一文件

我正在尝试创建一个具有唯一名称的文件并在后台向其写入数据。mktemp说只要有可能,就应该使用mkstemp(),因为它没有竞争条件。使用mkstemp会产生一个打开的文件描述符,因此dispatch_write似乎很明显。现在NSData必须使用dispatch_data_create包装在dispatch_data_t中。必须注意释放需要释放的内存,保留必须保留的内存。在ARC下,这不太明显。+(void)createUnique:(NSData*)contentname:(NSString*)nameextension:(NSString*)extensioncompletion

async/await 致WPF卡死问题

问题代码:xmal:一个按钮+一个显示框 1"100"Height="50"Margin="10"Click="Button_Click">test2"display"Width="300"Height="300">cs:点击按钮,显示结果asyncTaskint>getResult(){awaitTask.Delay(1000);return10;}privatevoidButton_Click(objectsender,RoutedEventArgse){display.Text="StartingtogetResult..........\n";vart=getResult().Resu

ios - 在 dispatch_async 中收到内存警告

这是我在cellForRowAtIndex中编写的用于下载图像的代码:dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{@autoreleasepool{__blockUIImage*img;__blockNSData*data;if(![messageDocument.SmallImageURLisEqual:@""]){data=[[NSDataalloc]initWithContentsOfURL:[NSURLURLWithString:messageDocument.Sma