AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Thread startet aber macht nicht fertig
Thema durchsuchen
Ansicht
Themen-Optionen

Thread startet aber macht nicht fertig

Ein Thema von rtky_trunks · begonnen am 25. Sep 2006 · letzter Beitrag vom 12. Okt 2006
Antwort Antwort
Seite 1 von 3  1 23      
rtky_trunks

Registriert seit: 5. Mai 2005
Ort: Breisach am Rhein
16 Beiträge
 
Delphi 7 Enterprise
 
#1

Thread startet aber macht nicht fertig

  Alt 25. Sep 2006, 23:03
Hallo,

ich mal wieder
Und zwar wenn ich mehrere Threads starte zbs. 5.
Delphi-Quellcode:
 for I := 1 to 5 do
   BeginThread(nil,
                         0,
                         Addr(Execute),
                         nil,
                         0,
                         id1);
und in dem Threads zbs. das drin steht:
Delphi-Quellcode:
procedure Execute;
begin
  Form1.Memo1.lines.add('start ');
  Form1.Memo1.lines.add('#');
end;
Dann stehen 5 "#" in dem Memo drin, so wie es sein soll.

Mach ich aber so:
Delphi-Quellcode:
procedure Execute;
begin
  Form1.Memo1.lines.add('start ');
sleep(100); // Oder irgendwas anderes wo ein bisschen Zeit beansprucht
  Form1.Memo1.lines.add('#');
end;
kommen manchmal nur 1 "#" in dem Memo oder manchmal auch 2.
Also beendet der Thread nicht richtig?
Kann mir bitte jemand einen kleine Denkanstoß geben, oder den Grund dafür nennen ?

Danke schonmal für's lesen
Gruss,
MArc
Matrix is a Puffer like a Net-Port
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Thread startet aber macht nicht fertig

  Alt 25. Sep 2006, 23:22
Das liegt wohl daran das du unsyncronisiert aus dem Thread auf VCL-Elemente zugreifst.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#3

Re: Thread startet aber macht nicht fertig

  Alt 25. Sep 2006, 23:23
Du solltest nicht VCL Komponenten aus einem Thread ohne Synchronize verwenden.

Edit: Ups da war einer schneller
Guck mal in der OH in TThread und Synchronize
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
rtky_trunks

Registriert seit: 5. Mai 2005
Ort: Breisach am Rhein
16 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Thread startet aber macht nicht fertig

  Alt 25. Sep 2006, 23:28
Könnt Ihr mich auch erklären wie ich das mache ?

Wenn ich
Delphi-Quellcode:
procedure Execute;
begin
   Synchronize([b]I[/b]MachMal);
sleep(100); // Oder irgendwas anderes wo ein bisschen Zeit beansprucht
   Synchronize(MachMal);
end;
Mache kommt ne Meldung:
Missing operator or semicolon
da wo das dicke I ist.

Ich habe schon in der Hilfe nachgeschaut und google auch schon seit 3 Stunden befragt, aber es kommt einfach nichts gescheites raus. Wenn ich es mittels TThread mache kommt genau das gleiche. Deswegen dachte ich, ich nehm wieder BeginThread . Aber das geht ja auch nicht...

Danke.
Gruss,
MArc
Matrix is a Puffer like a Net-Port
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#5

Re: Thread startet aber macht nicht fertig

  Alt 25. Sep 2006, 23:32
Versuche einen TThread abzuleiten...

Delphi-Quellcode:
procedure TMyThread.Machmal;
begin
   Form1.Memo1.lines.add('...');
end;

procedure TMyThread.Execute;
begin
   Synchronize(MachMal);
end;
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
rtky_trunks

Registriert seit: 5. Mai 2005
Ort: Breisach am Rhein
16 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Thread startet aber macht nicht fertig

  Alt 25. Sep 2006, 23:58
Boah, manchmal könnte ich den hier
Bin ziemlich Felsenfest überzeugt, dass ich das gleich vorhin gemacht habe, und es nicht ging.

Aber hauptsache ist, dass es jetzt funktionukt

Danke euch.

Gruss,
MArc

PS: Fragt mich nicht, was ich anderst gemacht habe.... weiss es nämlich selbst nicht ^^
Matrix is a Puffer like a Net-Port
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#7

Re: Thread startet aber macht nicht fertig

  Alt 26. Sep 2006, 00:17
Laß mal lieber, davon bekommt man nur Kopfschmerzen

Hauptsache jetzt läufts!
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
kaiser1401

Registriert seit: 6. Mär 2006
Ort: Gescher
157 Beiträge
 
Delphi 7 Professional
 
#8

Re: Thread startet aber macht nicht fertig

  Alt 12. Okt 2006, 10:20
Hallo, Hab da auch so ein änliches Problem. Mein Thread startet Problemlos und läuft bis kurz vor Synchronize. Dann tut sich nichts mehr (in dem thread).


Aufruf des Synchronize: (innerhalb einer Methode die in Execute aufgerufen wird.
Delphi-Quellcode:
 //...
 if search.Items.Count > 0 then
  begin
   fNodeToCheck:=node;
   // bis hier komme ich ohne Probleme
   Synchronize(markNode);
  end;
 //...
Delphi-Quellcode:
procedure TCheckForNewInPostkorbThread.MarkNode;
begin
  AdvNavForm.Test;
end;
Die Procedure Test sollte in dem anderen Thread nun ein showmessage aufrufen, tut aber nicht.
inc(i);
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#9

Re: Thread startet aber macht nicht fertig

  Alt 12. Okt 2006, 10:26
Zeig uns auch bitte noch die Procedure "Test".
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#10

Re: Thread startet aber macht nicht fertig

  Alt 12. Okt 2006, 10:39
Zitat von kaiser1401:
Die Procedure Test sollte in dem anderen Thread nun ein showmessage aufrufen, tut aber nicht.
Welcher anderer Thread?
Meinst Du den VCL Thread oder hast Du noch meherere Threads?
Zeig mal mehr Quelltext.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 15:09 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