在进行中取消长时间运行的TFDBatchMove

Rev*_*eer 2 delphi

如何在调用TFDBatchMove后取消批量移动.执行,还在进行中吗?例如,如果用户按下表单上的"取消"按钮.我没有在TFDBatchMove上看到任何类型的Cancel方法.

我试过用了

  raise Exception.Create('Aborted');
Run Code Online (Sandbox Code Playgroud)

在TFDBatchMove的OnProgress事件中(检查"取消"按钮设置的"已取消"标志),但在异常消息窗口中按"确定"后,批量移动将继续.

另一种可能性是关闭阅读器组件,或设置Reader := nil在飞行中,但这似乎有点像黑客.

Vic*_*ria 5

调用AbortJob方法.它的描述如下:

使用AbortJob方法停止当前数据移动.

在调用AbortJob之后,该方法停止从读取器数据源读取数据,停止将数据写入writer并终止Execute方法.