相关疑难解决方法(0)

iPhone - Grand Central Dispatch主线程

我一直在使用我的应用程序中的成功,宏大的中央调度,但我想知道使用这样的东西的真正优势是什么:

dispatch_async(dispatch_get_main_queue(), ^{ ... do stuff
Run Code Online (Sandbox Code Playgroud)

甚至

dispatch_sync(dispatch_get_main_queue(), ^{ ... do stuff
Run Code Online (Sandbox Code Playgroud)

我的意思是,在这两种情况下,你都要触发一个块来在主线程上执行,确切地说应用程序在哪里运行,这无助于减少负载.在第一种情况下,当块运行时,您没有任何控制权.我已经看到在你开火后半秒执行块的情况.第二种情况,它类似于

[self doStuff];
Run Code Online (Sandbox Code Playgroud)

对?

我想知道你们的想法是什么.

concurrency grand-central-dispatch ios dispatch-async

145
推荐指数
5
解决办法
14万
查看次数

是否可以使用通知回复到IOS应用程序的主线程?(cf performSelectorOnMainThread)

是否可以使用通知回复到IOS应用程序的主线程?(cf performSelectorOnMainThread).也就是说,为此目的有没有任何gottcha?

背景

  • 想从后台线程回调主UI线程(例如performSelectorInBackground)
  • 可以使用performSelectorOnMainThread进行回传,但想知道是否可以使用通知?

例如

 [[NSNotificationCenter defaultCenter] postNotificationName:@"ModelChanged" object:self];
Run Code Online (Sandbox Code Playgroud)

iphone nsnotifications nsthread nsnotificationcenter ios

13
推荐指数
2
解决办法
6943
查看次数

NSNotificationCenter线程安全吗?

我可以在给定队列中发布通知并在另一个队列中接收通知吗?我想使用通知来传达不同的队列,但我不确定这是否安全......

concurrency cocoa-touch objective-c grand-central-dispatch nsnotificationcenter

13
推荐指数
2
解决办法
5366
查看次数