2012-10-23 58 views
1

我需要做一个验证,为此我需要知道,如果任务仍在运行,我在你的SerialQueue使用此代码发射任务dispatch_queue_t SerialQueue如何检查是否仍在运行。 IOS GCD

` SerialQueue = dispatch_queue_create("miColaEnSerie", NULL); 
     dispatch_async(SerialQueue, ^{ 
    [self loadImageFriend:init finalWhitNumber:final img1WithArray:infoImages1 img2WithArray:infoImages2 img3WithArray:infoImages3]; 
    });` 

回答

3

如果你只有一个任务在时间那么你可以原子属性添加到像类:

@property (assign) BOOL isSerialQueueRunning; 

然后:

isSerialQueueRunning = YES; 
dispatch_async(SerialQueue, ^{ 
    [self loadImageFriend:init finalWhitNumber:final img1WithArray:infoImages1 img2WithArray:infoImages2 img3WithArray:infoImages3]; 
    isSerialQueueRunning= NO; 
}); 

然而,如果有更多的任务要添加到SerialQueue你可以将BOOL isSerialQueueRunning更改为NSInteger serialQueueTasks并相应地增加/减少它。然后验证它是否为0,这意味着此时队列中没有任何内容。

有时候最好是在任务完成时实现通知以获取信息并在此之后执行某些操作。

+0

真的帮我非常感谢你的朋友 – asl87

相关问题