AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Thread: Direkt auf die Form zugreifen?
Thema durchsuchen
Ansicht
Themen-Optionen

Thread: Direkt auf die Form zugreifen?

Ein Thema von Helmi · begonnen am 27. Mär 2005 · letzter Beitrag vom 30. Mär 2005
Antwort Antwort
Seite 3 von 3     123   
Michael_Bayer

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

Re: Thread: Direkt auf die Form zugreifen?

  Alt 29. Mär 2005, 23:24
Sind Pointer eigentlich "Treadsafe"?
Wenn ich zb einen Eintrag in einem VirtualStringTree ändern möchte.
Ich hole mit das Node in der CriticalSection und setze einen Pointer auf seine Daten.

Kann ich jetzt ausserhalb der CriticalSection mit Hilfe des Pointers die Daten verändern? (Wenn kein anderer genau auf das Ziel des Pointers schreiben möchte)

EDIT: Um mal auf die VCL zurückzukommen - sind Functionen wie "VCL-Objekt.Refresh" oder ähnliches threadsafe?
  Mit Zitat antworten Zitat
Mephistopheles
(Gast)

n/a Beiträge
 
#22

Re: Thread: Direkt auf die Form zugreifen?

  Alt 30. Mär 2005, 08:40
Zitat von Michael_Bayer:
Sind Pointer eigentlich "Treadsafe"?
Wenn ich zb einen Eintrag in einem VirtualStringTree ändern möchte.
Ich hole mit das Node in der CriticalSection und setze einen Pointer auf seine Daten.

Kann ich jetzt ausserhalb der CriticalSection mit Hilfe des Pointers die Daten verändern? (Wenn kein anderer genau auf das Ziel des Pointers schreiben möchte)
Benutz' einfach InterlockedExchange() oder InterlockedExchangePointer() (eins von beiden war nicht deklariert in meiner Delphiversion) statt "bla := bla2" und schon bist du fein raus

Zitat von Michael_Bayer:
EDIT: Um mal auf die VCL zurückzukommen - sind Functionen wie "VCL-Objekt.Refresh" oder ähnliches threadsafe?
Die VCL ist meines Wissens vollständig nicht thread-safe.
  Mit Zitat antworten Zitat
Michael_Bayer

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

Re: Thread: Direkt auf die Form zugreifen?

  Alt 30. Mär 2005, 09:15
Zitat von Mephistopheles:
Zitat von Michael_Bayer:
Sind Pointer eigentlich "Treadsafe"?
Wenn ich zb einen Eintrag in einem VirtualStringTree ändern möchte.
Ich hole mit das Node in der CriticalSection und setze einen Pointer auf seine Daten.

Kann ich jetzt ausserhalb der CriticalSection mit Hilfe des Pointers die Daten verändern? (Wenn kein anderer genau auf das Ziel des Pointers schreiben möchte)
Benutz' einfach InterlockedExchange() oder InterlockedExchangePointer() (eins von beiden war nicht deklariert in meiner Delphiversion) statt "bla := bla2" und schon bist du fein raus
Kann ich hier nicht auch eine CriticalSection benutzen? Falls ja, warum exisitieren dann so viele andere Arten von "Threadsicherung"? Was gibt mit InterlockedExchange, was mir eine Critical Section nicht gibt?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 09:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz