我需要进行验证,为此,我需要知道任务是否仍在运行,我使用此代码来启动任务

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

最佳答案

如果您在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,这意味着当前队列中没有任何内容。

有时最好在任务完成时实施通知以获取信息,然后再执行一些操作。

关于objective-c - dispatch_queue_t SerialQueue如何检查是否仍在运行。 ios GCD,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13033165/

10-10 20:45