我正在使用其他问题的代码,并且无法弄清楚如何实际“确定”某项任务可能需要多长时间。例如:
- (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的文件 - 我怎么能以编程方式确定以任何持续时间可能的平滑一致方式为指标设置动画的时间长度?感谢