在处理很多并发操作的时候,如果使用多线程则太耗资源且太危险,这时可考虑使用多进程。
如下是一个关于Cocoa如何调用外部执行程序并等待的例子:
NSArray * args = [NSArray alloc] initWithObjects:@"arg1", @"arg2", nil]; // 初始化参数列表, 可增加
NSString * TempPath;
TempPath = [[NSBundle mainBundle] pathForAuxiliaryExecutable:@"mplayer"]; //MacOS 文件夹下面 获取外部可执行文件路径
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:TempPath];
[task setArguments:args];
[mainFrm miniaturize:self]; //mainFrm 当前NSWindow
[task launch];
[task waitUntilExit];
[mainFrm deminiaturize:self];
[task release];
[TempPath release];
[args release];