0

我正在使用另一个问题的代码,但无法弄清楚如何实际“确定”某些任务可能需要多长时间。例如:

- (void)doSomething
{
    [showProgress startAnimation:nil];
    dispatch_queue_t backgroundQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    dispatch_async(backgroundQueue, ^{
        for (NSUInteger i = 0; i < 100; i++) {

            // Do whatever it is you need to do

            [self goUnZipFiles]; // THIS COULD BE A 1MB FILE OR 3GB

            dispatch_async(dispatch_get_main_queue(), ^{
                [showProgress incrementBy:1.0];
            });
        }
        // Done with long running task
        dispatch_async(dispatch_get_main_queue(), ^{
            [showProgress stopAnimation:nil];
        });
    });
}

例如,问题是有一个任务可以解压缩可能是 1 MB 或 3 GB 的文件 - 无论任务的持续时间可能是什么,我如何以编程方式确定以平滑一致的方式为指示器设置动画的时间?谢谢

4

0 回答 0