草庐IT

DISPATCH_LEVEL

全部标签

swift - 在 Swift 中的 Dispatch 闭包中修改结构实例变量

我使用的是DEVELOPMENT-SNAPSHOT-2016-06-06-a版本的Swift。我似乎无法解决这个问题,我尝试在不同的地方使用@noescape,但我仍然有以下错误:Closurecannotimplicitlycaptureamutatingselfparameter为了更好地解释,这里有一个简单的例子:publicstructExampleStruct{letconnectQueue=dispatch_queue_create("connectQueue",nil)vartest=10mutatingfuncexample(){ifletconnectQueue=se

ios - Swift/如何将 dispatch_group 与多个调用的 web 服务一起使用?

我正在使用dispatch_group调用Firebase请求函数,并在请求完成后收到通知,以便能够处理结果。在这种情况下,我只是放了一条打印语句。funcloadStuff(){dispatch_group_enter(group)myFirebaseFunction(){dispatch_group_leave(group)}dispatch_group_notify(group,dispatch_get_main_queue()){print("done")}}funcmyFirebaseFunction(completionHandler:()->()){letusersRef

swift - Swift 中 dispatch_once 的例子

有没有在Swift中应该如何使用dispatch_once的例子?(最好是Apple的。)注意:在本例中,我是notusingitforasingleton;我想只运行一次任意代码。更新:我主要对在实例方法中使用this时推荐的约定感兴趣,但是为了完整性起见,在类方法、函数和全局上下文中的使用会很有用。 最佳答案 dispatch_once_t是类型别名(Int)。header文档:/*!*@typedefdispatch_once_t**@abstract*Apredicateforusewithdispatch_once().I

ios - 什么时候使用 Semaphore 而不是 Dispatch Group?

我假设我知道如何使用DispatchGroup,为了理解这个问题,我试过:classViewController:UIViewController{overridefuncviewDidLoad(){super.viewDidLoad()performUsingGroup()}funcperformUsingGroup(){letdq1=DispatchQueue.global(qos:.userInitiated)letdq2=DispatchQueue.global(qos:.userInitiated)letgroup=DispatchGroup()group.enter()dq

objective-c - dispatch_time 和 dispatch_walltime 之间有什么区别,在什么情况下使用其中一种更好?

我知道dispatch_time是根据设备时钟确定的时间,如果设备进入休眠状态,时钟也会休眠。另一方面,dipatch_walltime是根据挂钟计算的时间,它永远不会休眠。我的问题是,在不同情况下使用一种或另一种,在性能方面或其他方面有什么区别吗?有人可以给我更多详细信息吗,因为Apple文档并不详尽。例如,我正在编写一个按特定时间间隔运行的Timer类。余地也可以是10到30秒。在性能方面,我应该使用dispatch_time还是dispatch_walltime哪一个。 最佳答案 dispatch_time在您的计算机进入休眠

swift - 'dispatch_once_t' 在 Swift : Use lazily initialized globals instead 中不可用

这个问题在这里已经有了答案:Whitherdispatch_onceinSwift3?(7个答案)Usingadispatch_oncesingletonmodelinSwift(30个答案)关闭6年前。我在迁移到Swift3时遇到dispatch_once_t问题。根据Apple'smigrationguide:Thefreefunctiondispatch_onceisnolongeravailableinSwift.InSwift,youcanuselazilyinitializedglobalsorstaticpropertiesandgetthesamethread-safe

grand-central-dispatch - 对自己使用 dispatch_async

我在将Objective-C代码移植到Swift时遇到过几次这个问题。假设我有以下代码:dispatch_async(dispatch_get_main_queue()){self.hostViewController?.view.addSubview(self.commandField)}这将导致错误,强调整个dispatch_async调用,提供:Couldnotfindmember'addSubview'我认为这是一个尚未正确实现的错误,因为如果我将addSubview调用放在dispatch_asyncblock之外,项目构建良好。最初我认为它可能与在block中捕获self有

c# - .Net TPL : Limited Concurrency Level Task scheduler with task priority?

我目前正在使用此处详述的LimitedConcurrencyLevelTask​​Schedulerhttp://msdn.microsoft.com/en-us/library/ee789351.aspx我想加强这一点,以便可以为个人任务分配优先级。这些优先级不需要映射到线程优先级。它应该只会影响任务的启动顺序。有谁知道这样的任务调度器的例子吗?(很多日程安排的事情都在我头上,所以如果有一个现有的解决方案那就太好了) 最佳答案 ParallelExtensionsExtrasSamples.已经提供了这样一个调度程序,即Queue

c# - 在事件分派(dispatch)之前检查 null ...线程安全吗?

有些事情让我感到困惑,但从来没有造成任何问题......推荐的调度事件的方式如下:publiceventEventHandlerSomeEvent;...{....if(SomeEvent!=null)SomeEvent();}在多线程环境中,此代码如何保证另一个线程不会在检查null和调用事件之间更改SomeEvent的调用列表? 最佳答案 正如您所指出的,在多个线程可以同时访问SomeEvent的情况下,一个线程可以检查SomeEvent是否为null并确定它是否为null。就在这样做之后,另一个线程可以从SomeEvent中删

c# - 不能将 lambda 表达式用作动态分派(dispatch)操作的参数,而不先将其转换为委托(delegate)或表达式树类型

我正在使用.NET4.5和VS2013,我有一个获取dynamic的查询来自数据库的结果。dynamictopAgents=this._dataContext.Sql("selectt.create_user_idas\"User\",sum(t.netamount)as\"Amount\"fromtransactiondetailtwheret.update_date>sysdate-7groupbyt.create_user_id").QueryMany();以下语句因编译错误而失败Cannotusealambdaexpressionasanargumenttoadynamical