gpt4 book ai didi

ios - 如何在 iOS 5 中启动可停止的计算任务?

转载 作者:行者123 更新时间:2023-11-29 04:35:01 25 4
gpt4 key购买 nike

我想开始一个持续几分钟的计算任务。由于解随着时间的推移越来越接近最优解,我想为用户提供一个按钮来随时停止计算并坚持近似值。

但是当我在 viewDidLoad 中开始计算时,带有停止按钮的 View 在计算结束之前甚至不会呈现给用户。所以我需要某种后台计算过程 - 但我如何在 iOS 5 上做到这一点?

我还希望能够在我的 View 中更新进度条(使用停止按钮)。

这是我在 UIViewController 子类中的代码:

- (void)viewDidLoad
{
[super viewDidLoad];

// doing some initialization

[self startCalculation]; // do this in background for stopping capabilities?
}

- (void)startCalculation {
// start calculation and update progress bar every 200 ms or so
}

有人可以帮我吗?

最佳答案

一般答案是从 NSThread 中调用 startCalculation

//thread is a property in your corrent class
NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(startCalculation) object:nil];

然后停止它

//when you want to stop the thread
[thread cancel];

如果您想从此线程内更新进度 View ,请确保像这样从 ui 主线程调用进度更新

//in your calculation function, when you want to update the progressview
- (void)startGenerationProcess {
//Calculations

//update progress
dispatch_async(dispatch_get_main_queue(), ^{
//Update progress
});

//More Calculations
}

关于ios - 如何在 iOS 5 中启动可停止的计算任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11177846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com