我正在Cocoa中开发一个多线程应用程序。主线程从用户获取值,当单击一个按钮时,我调用一个辅助线程,在该线程中进行长计算。现在从这个线程我必须将计算的每一步的输出返回到主线程。我想定期从一个线程发送数据到另一个线程。我找不到任何这样做的简单例子。有什么想法吗?
答案 0 :(得分:5)
有许多方法可以做到这一点,按照复杂程度的粗略顺序(最简单的第一个):
查看Abizer提到的文档,了解所有这些的详细信息。
答案 1 :(得分:1)
performSelectorOnMainThread:withObject:waitUntilDone:
通常是使用后台线程进度更新UI的最简单方法。您还可以创建自己的存储区域,使用NSLock或类似机制可以安全地访问线程,甚至可以使用分布式对象(也可以在进程之间或通过网络工作)。
然后有NSOperationQueue和NSOperation,这对简化多线程编程有很大帮助,尽管许多程序员已经避免使用它,因为它可能在Leopard下的某些情况下导致崩溃。
答案 2 :(得分:0)