AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi threads - Parallele Bewegungen von Objecten in einem Image
Thema durchsuchen
Ansicht
Themen-Optionen

threads - Parallele Bewegungen von Objecten in einem Image

Ein Thema von Noobinator · begonnen am 3. Apr 2007 · letzter Beitrag vom 6. Apr 2007
Antwort Antwort
Noobinator

Registriert seit: 9. Mai 2006
147 Beiträge
 
Delphi 7 Personal
 
#1

Re: threads - Parallele Bewegungen von Objecten in einem Ima

  Alt 4. Apr 2007, 15:05
Zitat:
Hi,
Du solltest auf gar keinen Fall VCL-Komponenten aus einem Thread heraus verändern. Da kommt nicht Dein Fehler her, die sind aber (wie bereits von DGL-Luke gesagt) nicht Threadsafe. Das heißt, mit etwas Pech verändern zwei Threads gleichzeitig Dein Bild und Du bekommst irgendwas zu sehen (nur nicht das was Du willst).

Den Fehler würde ich mal in Deiner globalen Variable a vermuten. Da es sich hier um eine globale Variable (und unsynchronisierte Threads) handelt, kann es dazu kommen, dass Du hier a in einem Thread frei gibst, während ein anderer danach a.bewege aufrufen möchte, was natürlich nicht funtkionieren kann.
An sich solltest Du aber ruhig auf TThread zurückgreifen, leistet das gleiche wie dein beginThread, kümmert sich aber auch um das saubere Beenden (und macht die Synchronisation leichter).

Gruß Der Unwissende
Danker erstmal für deine Antwort.
Das mit meiner Globalen Variable habe ich auch schon bemerkt, und das ganze mal abgeändert.

Delphi-Quellcode:
procedure machwas(x);
begin
   //Create ist hier nicht mehr erforderlich oder?
   x.bewege;
   freeAndNil(x);
end;

procedure form1.button1click(Sender:Tobject);
var hthread:Thandle;
    ThreadID:Cardinal;
begin
  hthread:=beginthread(nil,0,@machwas(x),nil,0,ThreadID);
end;
soweit so gut.
nur das ich bei beginthread keine proceduren mit Paramtern übergeben kann.

wie meinst du das mit TTHread?

könntest du das ganze vllt mal näher erläutern?
habe das erste mal mit Threads zu tun und demnach auch keine Ahnung
  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 13:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz