AGB  ·  Datenschutz  ·  Impressum  







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

multithreading funktioniert nicht

Ein Thema von Innos · begonnen am 12. Jun 2007 · letzter Beitrag vom 12. Jun 2007
 
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: multithreading funktioniert nicht

  Alt 12. Jun 2007, 06:55
Zitat von Innos:
Delphi-Quellcode:
 type
  TBinFertig = procedure(const Content: String) of object;
  TMyOwnThread = class(TThread)
  protected
    MediaPlayer1: TMediaPlayer;
    CB1: TCheckBox;
    CB2: TCheckBox;
    CB3: TCheckBox;
    CB4: TCheckBox;
    procedure Execute; override;
...
procedure TMyOwnThread.Execute;
...
       if Form1.CB1.Checked=true then // geht auch... also diese Checkbox zu checken 0o
...
end;
Wieso deklarierst Du CB1..CB4 im Thread, greifst dann aber auf die CheckBoxen der Form1 zu? Hier ist das zwar gerade noch ok (weil lesend zugegriffen wird), aber ...
Form1.MediaPlayer1.Play ... hier knallts dann endgültig.

Zitat von Innos:
Delphi-Quellcode:
procedure TSilkroadOnlineTool.Button5Click(Sender: TObject);
var Thread: TMyOwnThread;
begin
 Thread := TMyOwnThread.Create(True);
 Thread.Resume;
  Thread.Suspend;
  Thread.Terminate;
  Thread.Execute;
end;
end.
Das stößt mir auf: Ich erzeuge einen Thread, wecke ihn kurz auf, lege ihn wieder schlafen, dann sage ich ihm, er soll sich beenden und rufe dann sogar die protected Methode 'Execute' auf. Das kann nicht gut gehen! Du sollst die Execute-Methode nicht anfassen, die geht dich nichts an. Sie ist nicht umsonst als 'protected' deklariert.

Wie startet man einen Thread?
a) Man ruft den Konstruktor mit dem Parameter 'False' auf (der steuert, ob der Thread bei der Geburt schläft oder gleich losbrüllt)
b) Man weckt ihn explizit mit 'Resume' oder 'Suspended := False' auf.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
 


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 21:58 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