AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi thread variablen zugriff - Verständnisfrage
Thema durchsuchen
Ansicht
Themen-Optionen

thread variablen zugriff - Verständnisfrage

Ein Thema von th_bone · begonnen am 8. Jan 2007 · letzter Beitrag vom 28. Sep 2010
Antwort Antwort
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#1

Re: thread variablen zugriff - Verständnisfrage

  Alt 8. Jan 2007, 16:32
Zitat von th_bone:
@
das mit der Differenz funktioniert nur, solange niemand und auch kein Programm (z.B. Biet-o-matic), die Rechnerzeit verstellt und deshalb wollte ich eine unabhängige Lösung
Na vielleicht nicht unbedingt mit der Systemzeit abgleichen, aber mit "getTickcount"
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
berens

Registriert seit: 3. Sep 2004
441 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: thread variablen zugriff - Verständnisfrage

  Alt 28. Sep 2010, 12:16
(Jaja, Thema ist alt, aber meine Frage passt halt hierzu am Besten.)

Zusammengefasst (es geht mir hier bitte wirklich nur drum, ob es absturzsicher bzw. fehlerfrei ist, und nicht, ob es ansatzweise sinnvoll ist):

Wenn ich in MeinThread.Execute z.B. Form1.Caption := irgendwas mache, ist es kein Problem.

Wenn ich in Form1.Button1Click z.B. MeinThread.intIrgendwas := MeinThread.intIrgendwas + 1 mache, ist es kein Problem.

Alles was darüber hinausgeht, also quasi Befehle, die über mehrere Zeilen gehen (Schleifen oder if Abfragen darauf folgenden Reaktionen), können Probleme machen, weil Sie unterbrochen werden können, und sollten deshalb dringend vermieden werden.

Ist das so korrekt?

Danke für die Erleuchtung
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#3

AW: thread variablen zugriff - Verständnisfrage

  Alt 28. Sep 2010, 12:29
Zitat:
Wenn ich in MeinThread.Execute z.B. Form1.Caption := irgendwas mache, ist es kein Problem.
Ist ein Problem, weil nur der Hauptthread auf VCL Objekte zugreifen darf. Also Synchronize() benutzen oder auf anderen Wegen wie mit PostMessage oder ähnlich regeln.

Zitat:
Wenn ich in Form1.Button1Click z.B. MeinThread.intIrgendwas := MeinThread.intIrgendwas + 1 mache, ist es kein Problem.
Ich würde den Zugriff auch hier synchronisieren, zum Beispiel mit einer CriticalSection. Hängt natürlich auch vom Datentyp des Feldes ab, wenn das Inkrementieren atomar läuft, sollte es auch ohne Synchronisation keine Probleme geben.
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.493 Beiträge
 
Delphi 12 Athens
 
#4

AW: thread variablen zugriff - Verständnisfrage

  Alt 28. Sep 2010, 15:03
Solche Zugriffe über Threadgrenzen würde ich grundsätzlich z.B. mit CriticalSection absichern.
Auch wenn es in Ausnahmefälle ohne sicher sein kann, bei späteren Erweiterungen oder Anpassungen denkt man mit Sicherheit nicht mehr daran und baut sich Fehler ein.
  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 19:02 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