AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Frage zum Zugriff eines threads auf die Form
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zum Zugriff eines threads auf die Form

Ein Thema von ghost007 · begonnen am 12. Jan 2008 · letzter Beitrag vom 12. Jan 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#1

Frage zum Zugriff eines threads auf die Form

  Alt 12. Jan 2008, 15:02
Hallo,

ich will durch einen thread sachen an listview meiner form ändern. Nun bekomm ich haufenweise errors, wenn ich z.b. den listview slecte. Muss ich die änderungen alle mit Synchronise(); machen ? oder woran kann das liegen?

MfG - Ghost007
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Kurze frage zu Thread

  Alt 12. Jan 2008, 15:10
Hallo,
Zitat von ghost007:
Muss ich die änderungen alle mit Synchronise(); machen ? oder woran kann das liegen?
ja, dafür musst Du Synchronize nehmen. Sämtliche Änderungen an der Oberfläche müssen im Kontext des Hauptthreads stattfinden.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#3

Re: Kurze frage zu Thread

  Alt 12. Jan 2008, 15:34
Zitat von xaromz:
ja, dafür musst Du Synchronize nehmen. Sämtliche Änderungen an der Oberfläche müssen im Kontext des Hauptthreads stattfinden.
Hm,
und wie mach ich das am schlausten, wenn ich lauter verschiedene aufrufe hab? Für jeden ne extra prozedur schreiben?

MfG - Ghost007
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Kurze frage zu Thread

  Alt 12. Jan 2008, 15:34
was für Fehler bekommst du denn?
Genau, für jeden eine extra Procedure schreiben oder eine Variable setzen und abhängig vom Wert der Variablen in der Procedure was anderes machen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#5

Re: Kurze frage zu Thread

  Alt 12. Jan 2008, 15:48
Hi,
kann mich an den fehler nicht mehr genau verhindern und hab das dann auch nich gespeichert (ich weiß, war doof -.-) aber irgendwas mit device could not be displayed oder so.

MfG - Ghpst007
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Kurze frage zu Thread

  Alt 12. Jan 2008, 15:52
Jo, typische Fehlermeldung wenn man aus einem Thread direkt auf die VCL zugreift.
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

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

Re: Kurze frage zu Thread

  Alt 12. Jan 2008, 16:17
Zitat von ghost007:
Hm,
und wie mach ich das am schlausten, wenn ich lauter verschiedene aufrufe hab? Für jeden ne extra prozedur schreiben?

MfG - Ghost007
Ja, sieht so aus.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#8

Re: Kurze frage zu Thread

  Alt 12. Jan 2008, 16:23
Eine frage noch.

Muss ich nur procedureen für die zugriffe auf die GUI schreiben oder für alles was beide benutzten ? z.b. einen ini-file


MfG - Ghost007
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

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

Re: Kurze frage zu Thread

  Alt 12. Jan 2008, 16:30
Jein.
Im Einzelfall musst du das selber prüfen.
Generell gilt, du darfst nicht aus verschiedenen Threads auf dieselben Variablen zugreifen. Und da z.B. die VCL das nicht verhindert, kannst du generell auf Klassen der VCL nicht gleichzeitig greifen.

Bei dateien könntest du aber prüfen, ob es Shared-Read-Access o.ä. gibt und du öffnest die datei zweimal.
Aber irgendwie hat dein Thread ziemlich viel mit dem Mainthread gemeinsam. Evtl. solltest du das Konzept überdenken und nur das in einen Thread legen, was er wirklich unabhängig von allem anderen machen kann. Ergebnisse kannst du ja zwischenspeichern.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#10

Re: Kurze frage zu Thread

  Alt 12. Jan 2008, 17:20
Zitat von sirius:
Jein.
Im Einzelfall musst du das selber prüfen.
Generell gilt, du darfst nicht aus verschiedenen Threads auf dieselben Variablen zugreifen. Und da z.B. die VCL das nicht verhindert, kannst du generell auf Klassen der VCL nicht gleichzeitig greifen.

Bei dateien könntest du aber prüfen, ob es Shared-Read-Access o.ä. gibt und du öffnest die datei zweimal.
Aber irgendwie hat dein Thread ziemlich viel mit dem Mainthread gemeinsam. Evtl. solltest du das Konzept überdenken und nur das in einen Thread legen, was er wirklich unabhängig von allem anderen machen kann. Ergebnisse kannst du ja zwischenspeichern.
Hi,
das problem ist das ich ne for-schleife hab, die ca. 5 mal duchläuft, ein durchlauf dauert zwischen 20sec-Xsec da in der zeit das programm langsam/gar nicht reagiert hab ich mir gedacht pack ich den prozess in nen thread. Um das ganze zu realisieren, muss ich aber die ganze for-schleife in den thread packen, sonst hab ich ja nichts gewonnen. Oder?

MfG - Ghost007
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:56 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