我有一个问题我无法找到答案,因为我想知道我当前的代码是否正确。代码如下。
关于while循环的问题..这是正确的吗?
PS:Platinum uPnp在Start()之后需要一个while循环,否则进程会明显停止。
- (void) start {
scan_queue = dispatch_queue_create("upnpscan.devices", NULL);
dispatch_async(scan_queue, ^{
PLT_CtrlPointReference ctrlPoint(new PLT_CtrlPoint());
BritneyMediaController controller(ctrlPoint, self);
upnp.AddCtrlPoint(ctrlPoint);
upnp.Start();
[self setRunning:YES];
while([self running]) {
}
NSLog(@"Stopped running");
});
NSLog(@"Voor sleep");
sleep(10);
NSLog(@"Ik ben wakker");
[self stop];
}
- (void) stop {
[self setRunning:NO];
return;
}
答案 0 :(得分:1)
这看起来不对。如果你需要while循环,那意味着Start()是非阻塞的,在这种情况下它不需要在后台线程中。你应该在主线程上运行runloop并从那里开始,看起来像。