我需要进行验证,为此我需要知道任务是否仍在运行我使用此代码启动任务
` SerialQueue = dispatch_queue_create("miColaEnSerie", NULL);
dispatch_async(SerialQueue, ^{
[self loadImageFriend:init finalWhitNumber:final img1WithArray:infoImages1 img2WithArray:infoImages2 img3WithArray:infoImages3];
});`
答案 0 :(得分:3)
如果您的SerialQueue中一次只有一个任务,那么您可以将原子属性添加到类:
@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,这意味着此时队列中没有任何内容。
有时最好在任务完成时实现通知以获取信息,然后执行某些操作。