PDA

View Full Version : سوال: مشکل در اجرای دوباره ترد بعد دیسکانکت



mohammad4353
جمعه 15 دی 1396, 16:06 عصر
Var
Scan: TScan;
StopUp: Boolean;


type
TScan = class(TThread)
private
IdHTTP1: TIdHTTP;
IsUpload: Boolean;
procedure HttpWork(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
protected
procedure Execute; override;
end;


procedure TScan.HttpWork(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
begin
if StopUp then
IdHTTP1.Disconnect;
end;


procedure TScan.Execute;
begin
IdHTTP1 := TIdHTTP.Create(nil);
IdHTTP1.HTTPOptions := [hoKeepOrigProtocol];
IdHTTP1.OnWork := HttpWork;


try
code := IdHTTP1.Post('Address', 'DataStream'); //Upload
except
IdHTTP1.Free;
end;
IdHTTP1.Free;

end;


procedure Form1.StartClick(Sender: TObject);
begin
StopUp := False;
Scan := TScan.Create(False);
Scan.FreeOnTerminate := True;
end;


procedure Form1.StopClick(Sender: TObject);
begin
StopUp := true;
end;

یوسف زالی
جمعه 15 دی 1396, 17:04 عصر
StopUp should not be in shared space. put it as member of your thread instead.

mohammad4353
جمعه 15 دی 1396, 17:35 عصر
اگه تو ترد قرارش بدم چجوری از طریق باتم بهش مقدار بدم.

یوسف زالی
جمعه 15 دی 1396, 22:57 عصر
نام ترد نقطه پراپرتی، دقیقا مثل یک شی باهاش رفتار می کنید.
یک ترد می سازید، وقتی لازم بود بهش مقدار بدید، اسم ترد را بنویسید نقطه پراپرتی.