我使用的是Delphi 10.1柏林更新和Indy的TIdHttp组件。我通常使用以下代码中止连接:
procedure TMyThread.OnWork(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: int64);
begin
if abort then (asender as tidhttp).Disconnect;
end;
这在VCL应用程序中工作得很好,只要平台是Windows,在FireMonkey应用程序中也是如此。当我以MacOS为目标使用此代码时,它会立即关闭我的应用程序,而不会显示错误消息或任何内容。
所以我的问题是,我做错了什么,当平台是MacOS时,我如何中止连接?
3条答案
按热度按时间0wi1tuuw1#
我不会直接调用
Disconnect()
并从TIdHTTP
断开套接字连接,而是会引发一个异常,比如调用SysUtils.Abort()
,并让TIdHTTP
或调用线程在请求完全中止后关闭套接字。ff29svar2#
试着这样做:
frebpwbc3#
尝试捕获线程异常。