AGB  ·  Datenschutz  ·  Impressum  







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

Multithreadanwendung koordinieren

Ein Thema von der_boss · begonnen am 18. Aug 2005 · letzter Beitrag vom 19. Aug 2005
Antwort Antwort
der_boss

Registriert seit: 10. Sep 2004
Ort: Dresden
27 Beiträge
 
Delphi 6 Professional
 
#1

Multithreadanwendung koordinieren

  Alt 18. Aug 2005, 11:33
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 suspend sollte doch der DarstThread angehalten werden, um dann, wenn der erste Thread wieder resume gibt, weiterzulaufen..
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Multithreadanwendung koordinieren

  Alt 18. Aug 2005, 11:57
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
  Mit Zitat antworten Zitat
Unplugged

Registriert seit: 14. Apr 2004
Ort: Leipzig
125 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Multithreadanwendung koordinieren

  Alt 19. Aug 2005, 12:14
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 ;)
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:56 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