Hallo,
ich habe ein Problem was die "Threadsicherheit" von Objekten betrifft.
Je mehr ich darüber lese, desto verwirrter werde ich, daher ein paar
konkrete Fragen:
In meinem speziellen Fall verwende ich immer nur einen Arbeitsthread.
a)
MYThread := TMyTread.Create(aStringlist :TStringlist);
Ich übergebe eine Stringliste und verarbeite diese
ausschließlich lesend im Thread, ist das sicher?
Im Delphi-Demobeispiel wird eine Paintbox verwendet, GrafikCopmos sind
aber von Haus aus Thread sicher, glaube ich.
b)
Delphi-Quellcode:
procedure TMyTread.Execute;
Var
aStringlist :TStringlist;
Begin
TRY
aStringlist := TStringlist.Create;
...
INHERITED Create(TRUE);
End;
Ist diese Variante sicher?
Und Allgemein:
c)
Delphi-Quellcode:
procedure TMyTread.Execute;
Var
aNichtVisuelleComponente :TNichtVisuelleComponente;
Begin
TRY
aNichtVisuelleComponente := :TNichtVisuelleComponente.Create;
...
INHERITED Create(TRUE);
End;
Punkt c ist mein größtes Problem, einerseits schreibt Peter Below
hier dass, das Erzeugen beliebiger Komponenten im Thread kein Problem ist, aber andererseits
habe ich feststellen müssen, dass man
keine neuen Fenster im Thread erzeugen kann...
kann mir jemand helfen?