通过异步回调触发

时间:2012-08-10 17:29:21

标签: objective-c ios multithreading asynchronous

如果应用程序异步执行代码块并在回调中通知完成状态,那么这些都是在主线程(回调)上执行吗?

在此回调中处理Core Graphics绘图和文件操作的正确方法是什么?

我目前在回调中运行这些指令,但是想要触发一个线程来处理这些指令。

2 个答案:

答案 0 :(得分:0)

如果您正在进行任何UI绘图,那么必须在主线程上。如果您现在正在执行这些异步块(表面上是在并发调度队列中),为什么不在那里完成所有工作,并且当您有要显示的成品时,只有在主块上回复消息。如果你的回调调用了类中的其他方法,那么处理并发的最安全的方法是定义辅助对象 - 小对象将输入和产品作为输出。

创建帮助程序,附加它需要的任何数据,在队列中的块中启动它,当它完成时,它会在提取成品的主线程上发回消息,呈现它,然后删除帮助程序对象。 / p>

答案 1 :(得分:0)

我在Core Graphics方面没有太多经验,但我在块上做了大量的工作。

在我看来,如果您的应用程序异步执行代码块(在新线程上),那么在主线程上进行make回调或通知是一个很好的做法。