穿上正确的选择?

时间:2013-09-09 15:12:20

标签: multithreading delphi

我是线程新手,因此我不确定线程​​是否是解决此问题的正确方法。

我的程序需要执行几次计算,后面跟logik相同,但参数不同。计算时间越长,它就越接近完美的答案。计算持续时间不能在之前(从几秒到几分钟)测量

用户希望在特定时间按顺序(从计算1到X)获得结果。只要他得到一个结果,他就不满足于完美的解决方案。一旦他有了解决方案,他就不会对之前的那个感兴趣(例如:他有一个不完美的答案来自计算1并且现在要求从计算2回答;即使现在有更好的答案计算1,他也不感兴趣在它)

以正确的方式进行线程化吗?

1 个答案:

答案 0 :(得分:5)

线程听起来像是一种很好的方法,因为您可以在后台线程上执行长时间运行的计算,同时保持UI响应。

为了满足您在订单中获得结果的要求,您可能需要一种方法来停止不再需要的线程。要么中止它们(可能是极端的),要么只是发出信号来停止和/或返回当前结果。

请注意,您可能希望线程定期检查UI以报告进度(%完成),检查是否有任何中止请求等。虽然这完全取决于您的应用程序,但不一定是必需的。