Einzelnen Beitrag anzeigen

Michael_Bayer

Registriert seit: 20. Mär 2005
137 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: Thread: Direkt auf die Form zugreifen?

  Alt 29. Mär 2005, 20:28
Zitat von Helmi:
und wie dann?

der einer sagt: ja, es geht, der andere sagt: nein - zu gefährlich

was jetzt?
Ja es geht (wär ja blöd, wenn nicht) - jedoch sind bestimmte Regeln zu beachten. (s.o.)

Also wie ich das verstanden habe, muss man vor dem kritischen Bereich (dem Ändern eines VCL-Objektes) die "critical section" "entern" und danach wieder "leaven".
Meine Frage nun: Wenn ich die critical section betrete, woher wissen dann die anderen Threads, welches Objekt sie nicht anfassen dürfen? (Dass die Threads dann komplett stillstehen, kann ja nicht sein)

EDIT: Ahhhh verstanden - Wenn ich eine CriticalSection betrete, dann bin nur ich darin und alle, die auch etwas "kritisches" machen wollen, müssen warten.
So muss ich überall, wo etwas zusammenhauen könnte, die CriticalSection benutzen.

Allerdings kommt mir das etwas.. naja.. ineffektiv vor.
Ich muss ja dann auch bei Leseoperationen auf ein Objekt, dass woanders geschrieben werden könnte, eine CriticalSection benutzen - so werden ja auch Leseoperationen serialisiert...muss das sein?

EDIT2: Aber das Problem könnte ich ja minimieren, wenn ich für JEDES Objekt eine eigene CriticalSection erstelle. So sitze ich dann zum Schluss vielleicht mit 20 CS rum, aber gehen sollte das. (Gibts eine logische Grenze für CriticalSections?)
  Mit Zitat antworten Zitat