我的iOS Swift应用程序基于来自多个滑块的输入执行一些冗长(一秒或更多)计算。我希望每次移动滑块并更改输入参数时重新开始计算。这意味着,我想,计算需要在后台线程上进行,但停止和重新开始计算的最佳方法是什么?如果我每次都杀掉后台线程,我最终可能会重启几百次。如何避免在重新创建对象时使用过多的内存?
谢谢,
儒略
答案 0 :(得分:0)
首先你不能或你不应该杀死后台线程。为了更好地理解你需要查看这个link。我想建议您需要显示活动指示器并等待第一次计算执行。如果你在主线程上进行计算,它也将比后台线程花费更少的时间。
答案 1 :(得分:0)
我会在你冗长的计算代码中加入一些检查点(例如,在开始新的迭代之前)并检查输入参数是否已经改变。如果是,请中止并重新开始。
现在,如果您想避免重复启动计算太多次,可以在滑块更改和冗长计算开始之间添加延迟。通过这种方式,您可以让用户在开始后台工作之前进行多次调整。