Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Multithreadanwendung koordinieren (https://www.delphipraxis.net/51765-multithreadanwendung-koordinieren.html)

der_boss 18. Aug 2005 11:33


Multithreadanwendung koordinieren
 
Hallo, endlich sommer! :)

Ich möchte eine Multithreadanwendung implementieren, der eine Thread soll so lange laufen, wie er nicht beendet worde,
d.h. in seiner execute steht

Delphi-Quellcode:
while not terminated do begin
    if UsbParIn(c_DevNum,instream,c_laen) then begin
      weitergabe:=instream;
      DarstThread.Resume;  // hier soll der andere Thread angestoßen werden
    end;
  end; // while
und in der anderen DarstThread.Execute steht:

Delphi-Quellcode:
procedure darst_Thread.Execute;
var
  i,max,min:integer;
  mittel:double;
begin
    irgendwas;
    suspend;
  end;

und immer an der markierten stelle soll der erste thread den zweiten Thread anstoßen, damit der zweite seine execute-Prozedur einmal ausführt.
Im Moment sieht es so aus, die zweite exe-Proz einmal ausgeführt wird, dann aber nicht mehr. Was kann ich tun?
Mit
Delphi-Quellcode:
suspend
sollte doch der DarstThread angehalten werden, um dann, wenn der erste Thread wieder
Delphi-Quellcode:
resume
gibt, weiterzulaufen.. :?:

Dax 18. Aug 2005 11:57

Re: Multithreadanwendung koordinieren
 
Ein Resume führt den Thread nur weiter, das bedeutet, der Thread läuft weiter, wo er aufgehört hat: kurz vorm end. Am besten setzt du den Code dort auch in eine while not Terminated-Schleife ;)

Unplugged 19. Aug 2005 12:14

Re: Multithreadanwendung koordinieren
 
Ich kenne ja nicht das komplette Programm, allerdings solltest du dir bewusst sein, dass der 1. Thread eventuell schon Resume aufruft, obwohl der 2. noch nicht Suspended ist.
Das ist zwar grundsätzlich kein Problem, aber die beiden Threads sind nicht synchron

Also ist blos nen Hinweis. Eventuell ist es ja Absicht ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:53 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