AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Thread Anfängerfrage

Ein Thema von Spurius · begonnen am 22. Nov 2003 · letzter Beitrag vom 27. Nov 2003
Antwort Antwort
Seite 5 von 5   « Erste     345   
Kamil

Registriert seit: 16. Aug 2002
178 Beiträge
 
#41

Re: Thread Anfängerfrage

  Alt 27. Nov 2003, 15:26
Warum ohne Polling? Ich habe eigentlich gemeit, dass er ATimeout auf einen Wert ungleich IdTimeoutInfinite setzt.
(Das war ich nach dem Zitat geschriebenen habe war nicht an dich sondern an Spurius gerichtet, weil er dies in seinem Code noch nicht berücksichtigt hat.)
  Mit Zitat antworten Zitat
Spurius

Registriert seit: 19. Aug 2003
294 Beiträge
 
Delphi 7 Professional
 
#42

Re: Thread Anfängerfrage

  Alt 27. Nov 2003, 15:46
Hallo,
hier ist der Code meines Threads:
Delphi-Quellcode:
unit threadtest;

interface

uses
  Classes,idtcpclient,dialogs,StdCtrls,sysutils;

type
  tmythread = class(TThread)
  private
    fclient:tidtcpclient;
    fmemo:tmemo;
    s: string;
    procedure updatememo;
  protected
    procedure Execute; override;
  public
   constructor create(const aclient: tidtcpclient;
   const amemo: tmemo);

  end;

implementation
uses modul;

constructor tmythread.create(const aclient: tidtcpclient;
         const amemo: tmemo);
begin
 inherited create(true);
 fclient := aclient;
 fmemo := amemo;
 resume;
end;

procedure tmythread.Execute;
begin
 while not terminated do
   fclient.ReadLn(s,500); //<- wenn ich das bei unten bei updatememo einsetzt, friert
   synchronize(updatememo); // das prog ein, wenn es hier lasse, friet nix ein, aber
   sleep(100); // der thread bewirkt auch nichts
end;


procedure tmythread.updatememo;
begin

 fmemo.Lines.Append(s);
end;
end.
Also, oben meine Kommentare im Code, und dann noch ne Frage, es ist schon richtig dass ich den thread im mainthread einfach create, ich muss sonst nichts dort verändern, oder?
Gruß
Spurius
  Mit Zitat antworten Zitat
Kamil

Registriert seit: 16. Aug 2002
178 Beiträge
 
#43

Re: Thread Anfängerfrage

  Alt 27. Nov 2003, 15:55
Kein Wunder, dass dein Thread nichts bewirkt. Du hast ein begin...end Block vergessen, die Parameter von ReadLn sind falsch und du solltest den TIdTCPClient im Thread erstellen.
So langsam wiederhole ich mich... was hat dir an dem Code, den du davor gepostet hast nicht gepasst? Du musstest nur noch ein paar Sachen ändern.
  Mit Zitat antworten Zitat
Spurius

Registriert seit: 19. Aug 2003
294 Beiträge
 
Delphi 7 Professional
 
#44

Re: Thread Anfängerfrage

  Alt 27. Nov 2003, 16:41
Hallo,
es geht!!!!!!!!!!!!!!!!!!!!!!!!
Hier ist der Code:
Delphi-Quellcode:
unit threadtest;

interface

uses
  Classes,idtcpclient,dialogs,StdCtrls,sysutils;

type
  tmythread = class(TThread)
  private
    fclient:tidtcpclient;
    fmemo:tmemo;
    s:string;
    procedure updatememo;
  protected
    procedure Execute; override;
  public
   constructor create(const aclient: tidtcpclient;
   const amemo: tmemo);

  end;

implementation
uses modul;

constructor tmythread.create(const aclient: tidtcpclient;
         const amemo: tmemo);
begin
 inherited create(true);
 fclient := aclient;
 fmemo := amemo;
 resume;
end;

procedure tmythread.Execute;
begin
 while not terminated do
   begin
   s := fclient.readln;
   synchronize(updatememo);
   sleep(100);
   end;
end;


procedure tmythread.updatememo;
begin
 fmemo.Lines.Append(s);
end;
end.
Vielen Dank für die Hilfe, besonders an choose und kamil!
Gruß
Spurius
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 5   « Erste     345   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz