AGB  ·  Datenschutz  ·  Impressum  







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

CurrentThread in Delphi

Ein Thema von Funky-Sepp · begonnen am 10. Okt 2007 · letzter Beitrag vom 11. Sep 2009
Antwort Antwort
Seite 2 von 3     12 3      
Funky-Sepp

Registriert seit: 14. Okt 2003
Ort: Freudenricht/Velburg
56 Beiträge
 
#11

Re: CurrentThread in Delphi

  Alt 11. Okt 2007, 14:10
@OregonGhost

ruf Enter und Leave ziemlich oft auf.

Hab aber nun rausgefunden dass dies wohl nicht am Enter und Leave liegen kann das es einfach zufällig mal länger mal nicht so lange dauert.

Zudem brauche ich nun das Thread-Objekt auch nicht mehr. Da ich dazu nun eine anderen weg gegangen bin.
Wolfgang
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#12

Re: CurrentThread in Delphi

  Alt 11. Okt 2007, 15:32
Das klingt eher danach, als dass durch das häufige Enter/leave der Thread mal auf das Enter'n warten muss, weil wer anders dies auch gerade macht. Da ist eher eine Überschneidung vermutbar..
  Mit Zitat antworten Zitat
Funky-Sepp

Registriert seit: 14. Okt 2003
Ort: Freudenricht/Velburg
56 Beiträge
 
#13

Re: CurrentThread in Delphi

  Alt 11. Okt 2007, 15:51
Eine überschneidung kann eigentlich nicht sein, da dies auch passiert wenn nur ein Thread daran arbeitet.
Wolfgang
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

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

Re: CurrentThread in Delphi

  Alt 11. Okt 2007, 15:56
Was muss den synchronisiert werden. Manchmal hilft auch eine einfache Message

(btw. Synchronize von TThread arbeitet zwar mit criticalSection, aber nicht im Moment des synchronisierens - hmm schwierig zu erklären - ach egal )
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Funky-Sepp

Registriert seit: 14. Okt 2003
Ort: Freudenricht/Velburg
56 Beiträge
 
#15

Re: CurrentThread in Delphi

  Alt 11. Okt 2007, 16:17
Also folgendes Problem haben wir,

wir haben eine Komponente die eine Datenbankverbindung mit DBExpress/Firebird aufmacht
und auf diese DbVerbindung mit mehreren Threads zugreift.

Nun ist uns aufgefallen dass wenn mehr als ein Thread auf die Datenbank zugreift sich die Datenbankverbindung verabschiedet.
Also wollten wir nun, wenigstens als Workaround (was nun auch funktioniert) unsere Aufrufe Synchronisieren.

Das eigentliche Problem ist dass uns die Datenbankverbindung abschmiert
Wolfgang
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

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

Re: CurrentThread in Delphi

  Alt 11. Okt 2007, 16:23
Da kann man wohl nix machen, wenn eh alles auf diese Datenbank warten muss.

Ich weis ja nicht,was diese Threads noch machen. Aber vielleicht ghilft ein zusätzlicher Thread, der eine Liste mit den aktuell abzuarbeitenden SQL-Befehlen hat und diese ausführt und die Antworten wieder zurück an die Threads verteilt. Aber das geht auch nur, wenn die Antworten der Datenbank nicht kritisch sind für den weiteren Ablauf (und das wird wahrscheinlich der Fall sein).
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Funky-Sepp

Registriert seit: 14. Okt 2003
Ort: Freudenricht/Velburg
56 Beiträge
 
#17

Re: CurrentThread in Delphi

  Alt 11. Okt 2007, 16:28
Ja genauso ist es,

ausserdem habe ich keine Lust den kompletten Code der Fremdkomponente durchzugehen um dies zu beheben.

Aber ist doch immer das gleiche mit den Fremdkomponenten, man sollte von anfang an alles selber machen.
Wenn das dann nur immer nicht so schwer und vor allem Zeitaufwendig wär.
Wolfgang
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#18

Re: CurrentThread in Delphi

  Alt 12. Okt 2007, 18:25
So wie ich das lese, klingt es so, als würdet ihr mehrere Threads und nur ein Datenbankzugriffsobjekt haben. Dabei handelt es sich um eine Fremdkomponente, die nicht multi-threading fähig ist.

Könntet ihr nicht versuchen, für jeden Thread ein eigenes Verbindungsobjekt zu erzeugen? Bzw. wenn das die Datenbank zu sehr belasten würde könntet ihr mit einer poolbasierten Lösung arbeiten.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Funky-Sepp

Registriert seit: 14. Okt 2003
Ort: Freudenricht/Velburg
56 Beiträge
 
#19

Re: CurrentThread in Delphi

  Alt 15. Okt 2007, 08:41
@Chewie

Das ist ne gute Idee, werde diese mal im Auge behalten.
Der Umbau wird leider nur ein bisschen kompliziert, da die Fremdkomponente den Thread erstellt und die Datenbankverbindung von mir kommt. Aber ich hab da schon eine Idee wie ich dies umbauen kann.

Danke für den Tipp.

Werde wieder hier Posten wenns funktioniert hat.
Kann aber ein bisschen dauern, da ich im moment wieder an anderen sachen arbeite.
Wolfgang
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli
Online

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#20

Re: CurrentThread in Delphi

  Alt 10. Sep 2009, 22:53
Und - hat´s funktioniert?
Ich weiß, Du bist mir 2 Jahre voraus, aber ich will jetzt genau das selbe Problem angehen.

Mein Überlegung: Jedem Thread eine eigene IBDatabase zuweisen, um in EINER Anwendung gleichzeitige Zugriffe über MEHRERE Threads auf eine FB-EMBEDDED-Datenbank zu ermöglichen.

Ist das ein gangbarer Weg?

Stahli
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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