AGB  ·  Datenschutz  ·  Impressum  







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

TThread.Synchronize

Ein Thema von Der schöne Günther · begonnen am 14. Mär 2013 · letzter Beitrag vom 15. Mär 2013
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: TThread.Synchronize

  Alt 15. Mär 2013, 07:48
Was soll Delphi-Referenz durchsuchenTCriticalSection schon bereithalten?

Betreten oder Versuchen zu betreten, Verlassen that's all
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.204 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: TThread.Synchronize

  Alt 15. Mär 2013, 08:05
Und es funktioniert sogar, der Tag ist gerettet.

Im Endeffekt bin ich zwar immer noch etwas ratlos, was für konkrete Vorteile es mir bringt, nicht direkt über die WinAPI zu gehen, aber das wird sich sicher noch zeigen.

Geändert von Der schöne Günther (15. Mär 2013 um 08:09 Uhr)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.688 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: TThread.Synchronize

  Alt 15. Mär 2013, 08:33
Ich bin von Synchronize mittlerweile ganz weg. Wenn ich im Thread API Ressourcen brauche erstelle ich sie mir dort (nicht als Kompo auf dem Formular z.B.), Threads teilen sich nur via PostMessage mit, und haben Properties deren Getter und Setter mit jeweiligen Critical Sections versehen sind. Zwar wimmelt es in der Thread-Methode je nach Fall von CS.Enter; try ... finally CS.Leave; end; , aber so muss das Hauptprogramm nachher nicht mehr machen, als die Messages zu emfangen und kann einfach so auf den Feldern des Threads agieren. (Üblicherweise dann Work-Queues und erweiterte Status-Objekte o.ä.)

Ist etwas mehr Tipperei, aber seit ich das so durchziehe habe ich nie wieder einen Thread gegen die Wand fahren lassen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#4

AW: TThread.Synchronize

  Alt 15. Mär 2013, 09:03
Zwar wimmelt es in der Thread-Methode je nach Fall von CS.Enter; try ... finally CS.Leave; end; , ...
Und das sollte -der Lesbarkeit wegen- in kleine lokale Prozeduren oder private Methoden ausrefaktorisiert werden, dann wimmelt es nicht mehr so und... das Ganze gewinnt einen Preis für sauberen Code
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: TThread.Synchronize

  Alt 15. Mär 2013, 09:17
Zwar wimmelt es in der Thread-Methode je nach Fall von CS.Enter; try ... finally CS.Leave; end; , ...
Und das sollte -der Lesbarkeit wegen- in kleine lokale Prozeduren oder private Methoden ausrefaktorisiert werden, dann wimmelt es nicht mehr so und... das Ganze gewinnt einen Preis für sauberen Code
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.688 Beiträge
 
Delphi 2007 Enterprise
 
#6

AW: TThread.Synchronize

  Alt 15. Mär 2013, 09:30
Kommt er mir hier mit Selbstverständlichkeiten ;P (Aber auch diese bekommen dadurch hie un doa etwas Verschachtelungstiefe dazu, wobei ich es meist so mache, dass ich in der CS ein Objekt aus der Liste in eine lokale Variable packe und es aus der Liste werfe. Die Verarbeitung geht dann ausserhalb der CS, sonst würde das doch arg blockieren. Setzt natürlich voraus, dass andere Threads nur die Queue anfassen, ein keinen Finger mehr auf den enthaltenen Objekten behält.)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)

Geändert von Medium (15. Mär 2013 um 09:33 Uhr)
  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 02:39 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