我正在使用QuickTime API,需要在后台执行一些冗长的操作(以小时为单位)。不幸的是,它不是多线程友好的,所以我回过头来在一个单独的进程中执行任务,所以所有QuickTime相关的调用都可以在它的主线程中发生。
启动后,我需要一种获得反馈的方法,因为操作可能需要很长时间。
我不确定如何做到这一点,特别是:
这些实际上是6个以上的问题,但它们非常相关且非常具体,我认为任何需要启动外部流程(而不是产生工作线程)的人都可以从他们的答案中受益。通用代码示例非常有用。
答案 0 :(得分:1)
如果可能,则在命令行工具或其他形式的无GUI应用程序中实现该功能。对于Cocoa应用程序,可以防止它们出现在Dock或Force Quit对话框中,但是命令行工具是一个单独的二进制文件,无论如何都会这样做,所以这可能是一种更好的方法。
在推出该工具方面,NSTask& NSPipe是您努力的朋友。该工具绝对可以保存在主应用程序包中,在Resources目录或其他类似的内部,然后在需要时启动。您可以使用管道来回沟通。
我没有任何示例代码可供使用,并且已经有很长一段时间了,因为我有机会使用这些类中的任何一个,所以我可以提供的信息是有限的,但它应该足以指出你正确的方向。