如何在OmniThreadLibrary任务中运行时触发TIdHTTP.Disconnect

时间:2016-06-14 19:59:14

标签: multithreading delphi indy omnithreadlibrary

我想知道如何在Delphi Seattle中断开TIdHTTP的实例,而它是在OmniThreadLibrary的匿名过程CreateTask中执行的。

我目前的代码如下:

task := CreateTask(
procedure(const task: IOmniTask)
var
  http: TIdHTTP;
begin

  http := TIdHTTP.Create;

  try
    http.Get('http://192.168.1.14/stats.php?recalc');
  finally
    http.Free;
  end;

end).Run;

请求有时需要很长时间(例如40-60秒),用户应该有机会中止请求。

我知道使用TIdHTTP的OnWork事件,但在我的情况下这不适合。当有读/写操作时,OnWork会被调用,但在等待服务器时则会被调用。

0 个答案:

没有答案