为了简化问题,我的Delphi XE应用程序包含负责根据某些条件生成文件的对象:一个对象可以生成文本文件,其他对象(从前者继承)可以生成XML或HTML文件等等...它们都有一个共同的祖先,但不运行在线程上!
我现在正在尝试添加一种方法,使用户在点击取消按钮时可以取消整个生成过程。问题是我没有做任何事情让它起作用。最基本的操作是在整个生成过程中添加大量的
我的问题是,是否有更聪明的方法来实现这一点?或者您对重构我的代码有什么建议,以便将来可以更好地集成此添加时添加更多的生成代码(因此需要进行取消测试)?
我现在正在尝试添加一种方法,使用户在点击取消按钮时可以取消整个生成过程。问题是我没有做任何事情让它起作用。最基本的操作是在整个生成过程中添加大量的
if user_canceled then halt_process
,但我感觉这不是最优的解决方案。我的问题是,是否有更聪明的方法来实现这一点?或者您对重构我的代码有什么建议,以便将来可以更好地集成此添加时添加更多的生成代码(因此需要进行取消测试)?
if Cancelled then exit;
比使用异常更好。这会导致更可预测的运行时行为。 - Warren P