草庐IT

dispatch_cancel

全部标签

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(_

ios - iPhone - Grand Central Dispatch 主线程

我一直在我的应用程序中成功使用grandcentraldispatch,但我想知道使用这样的东西的真正优势是什么:dispatch_async(dispatch_get_main_queue(),^{...dostuff甚至dispatch_sync(dispatch_get_main_queue(),^{...dostuff我的意思是,在这两种情况下,您都在触发一个要在主线程上执行的block,也就是应用程序运行的位置,这无助于减少负载。在第一种情况下,您无法控制block何时运行。我见过在你发射它们后半秒执行block的情况。第二种情况,类似于[selfdoStuff];对吗?不知

ios - NSOperation 与 Grand Central Dispatch

我正在学习iOS的并发编程。到目前为止,我已经阅读了关于NSOperation/NSOperationQueue的内容和GCD.在GCD上使用NSOperationQueue的原因是什么?反之亦然?听起来GCD和NSOperationQueue都从用户那里抽象出了NSThreads的显式创建。但是,我不清楚这两种方法之间的关系,因此请提供任何反馈! 最佳答案 GCD是一种基于C的低级API,可以非常简单地使用基于任务的并发模型。NSOperation和NSOperationQueue是做类似事情的Objective-C类。NSOpe

redux - flutter redux 中有没有一种方法可以在分派(dispatch)另一个 Action 时分派(dispatch)一个 Action ?

我想实现一个成就系统。我将flutter_redux用于我的应用程序,依此类推,我已经实现了所有逻辑并且运行良好。但是现在我在我的“rootscreen”上发送一个Action(CheckForAchievementsAction),但这带来的效果是,每次发送这个Action时,都会因为“statechange”而flutter重建所有屏幕。您有什么想法或建议可以解决这个问题吗?也许我可以在另一个Action或类似的东西中发送这个Action?因为成就取决于“使用应用程序”...... 最佳答案 只有当组件的View模型发生变化时,

dart - Flutter 中的 PlatformException(sign_in_failed, Status{statusCode=CANCELED, resolution=null}, null) 错误

我用了google_sign_in3.0.5打包并按照文档中给出的说明进行操作,并使用给定的完全相同的代码。谁能告诉我在按照说明操作时我可能错过了什么,以及我必须做什么才能让它发挥作用。 最佳答案 您需要使用SHA-1验证您的客户端。在终端中执行此操作以生成SHA-1keytool-exportcert-list-v\-aliasandroiddebugkey-keystore%USERPROFILE%.android\debug.keystore或按照说明here然后,当您需要将SHA-1复制到您在Firebase上的项目设置时

timer - 在 Flutter 中,哪些情况下使用 timer.cancel() 而不是 timer = null?

我正在查看FlutterTimer代码和cancel()方法。当我想删除一个计时器时,我可以使用这两行:timer.cancel();timer=null;或者我可以这样做:定时器=空;但为什么同时执行cancel()和null?为什么不做一个或另一个?具体来说,我想问的是在重写状态的dispose()时,如果我知道该小部件无论如何都会被处置,我应该同时执行这两项还是只执行一项?另一种情况:我看到我可以使用if(timer==null)...,但如果我只是取消计时器而不将其设置为null,我同样可以使用if(timer.isActive).另一种情况:我可以看出,如果有timer.re

firebase - Flutter Firebase Auth/Google_sign_in 无法使用 statuscode=CANCELED 登录

这是我的pubspec.yaml。我正在使用Flutter:dependencies:flutter:sdk:fluttercupertino_icons:^0.1.2shared_preferences:^0.4.2json_serializable:^1.2.1camera:^0.2.3path_provider:^0.4.1simple_permissions:^0.1.6share:^0.5.3#GoogleSign_Infirebase_auth:^0.5.20google_sign_in:^3.0.5我无法使用Google登录方法进行身份验证。该窗口正常显示,但在我的应用程

ios - 如何将代码块分派(dispatch)到 iOS 中的同一个线程?

问题的主要方面:是关于iOS的。我能否以某种方式分派(dispatch)代码块,使它们都(a)在后台运行并且(b)在同一线程上运行?我想在后台运行一些耗时的操作,但这些操作必须在同一个线程上运行,因为它们涉及资源,不能在线程之间共享。更多技术细节,如果需要的话:它是关于为ApacheCordova实现一个sqlite插件,ApacheCordova是移动平台上HTML5应用程序的框架。这个插件应该是WebSQL的一个实现以Cordova的插件API的方式。(这意味着,不可能将整个交易包装在单个block中,这可以使一切变得更容易。)这是Cordova文档中的一些代码:-(void)my

PHP - 作业/队列 - 类分派(dispatch)不存在

我正在尝试在Laravel中使用队列,并为此安装了Redis和Horizo​​n。我的用户可以通过前端上传图片。发生这种情况时,它会调用store方法:publicfunctionstore(Stream$stream){//Validatetherequest.$validate=request()->validate(['file'=>'mimes:jpeg,jpg,bmp,png,gif,pdf',]);ImportDocuments::dispatch($stream);}在我的Jobs/ImportDocuments.php类中,我有这段代码:classImportDocum

ios - 在 Swift 中找出 Grand Central Dispatch 的语法

我有以下代码:dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)){//Dostuffinthebackgrouddispatch_async(dispatch_get_main_queue()){//DostuffontheUIthread}}但是它不会编译。对dispatch_async的内部调用返回以下编译错误:Cannotinvoke'init'withanargumentlistoftype'(dispatch_queue_t!,()->()->$T3)'我似乎无法弄清楚如何编