我正在使用另一个问题的代码,但无法弄清楚如何实际“确定”某些任务可能需要多长时间。例如:
- (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 的文件 - 无论任务的持续时间可能是什么,我如何以编程方式确定以平滑一致的方式为指示器设置动画的时间?谢谢