02. oktober 2002 - 22:03Der er
1 kommentar og 1 løsning
Threads
Argh :) har totalt glemt alt om hvordan man laer tråde i delphi :/
Har oprettet tråden "getstr". procedure getstr.Execute; var b : string; begin b:=Form1.IdTCPClient1.ReadLnWait; if (b<>'') then Form1.Memo1.Lines.Add(b); end;
- Den skulle vha. Form1.idTCPClient1 (en indy tcp komponent) tjekke om der er nyt data, og hvis der er så sende det til memo1 på form1.
I form1 kalder jeg den med en timer procedure TForm1.Timer1Timer(Sender: TObject); begin Timer1.Enabled:=False; Unit2.getstr.Create(); Timer1.Enabled:=True; end;
men Unit2.getstr.Create(); kræver et argument, hvad skal der være ?
- Er åben for andre forslag, skal blot kunne læse en TCP stream og behandle den (uden at den primære form låses).
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Nå men fpr det første så skal du ikke oprette din tråd i en Timer så forsvinder havlvdelen af fidusen. I stedet for skal du lave et u endeligt loop i din execute :
procedure getstr.Execute; var b : string; begin while not Terminated do begin b:=Form1.IdTCPClient1.ReadLnWait; if (b<>'') then Form1.Memo1.Lines.Add(b); end; end;
Når du så er trært af den kalder du blot Terminate på din tråd ...
Det argument der skal ind i Constructoren på en TThread er en Boolsk værdi for om din tråds skal starte susspederet, eller ej. Det er så i den siste ende dit valg ...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.