1

所以我一直觉得 UIGraphicsBeginImageContext 是线程安全的,可以从任何线程调用来创建一个新的 CGContextRef 可以用来绘制。

但是,当前的文档指出

"You should call this function from the main thread of your application only."

但是,在 WWDC 2012 会议视频“构建并发用户界面”中,演讲者显示您实际上可以在后台绘制,并在后台调用该方法:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

如您所见,他向 a _queue(在 BG 线程上运行)添加了一个操作,它调用renderedGraphOfSize,它调用UIGraphicsBeginImageContext。那么有什么关系呢?在后台绘图时,我的应用程序出现了一些崩溃,所以我不知道为什么 Apple 会出现令人困惑的示例。

4

2 回答 2

2

从文档中引用:

在 iOS 4 及更高版本中,您可以从应用程序的任何线程调用此函数。

链接:http: //developer.apple.com/library/ios/#documentation/UIKit/Reference/UIKitFunctionReference/Reference/reference.html

于 2013-06-25T12:05:34.287 回答
0

UIGraphicsBeginImageContext 在 iOS 4 及更高版本中绝对是线程安全的。WWDC 2012 会议视频与 iOS 6 相关,所以也许您也应该与 iOS 6 文档相关:)

于 2012-07-17T20:51:00.970 回答