AGB  ·  Datenschutz  ·  Impressum  







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

Threads Frage zu CriticalSections

Ein Thema von Gambit · begonnen am 12. Mai 2004 · letzter Beitrag vom 13. Mai 2004
Antwort Antwort
Seite 1 von 2  1 2      
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#1

Threads Frage zu CriticalSections

  Alt 12. Mai 2004, 18:58
Moin;

ich habe eine Form, von der ich 2 Threads starten will. Die Threads sind in einer weiteren Unit definiert. In jedem Thread erfolgen Zugriffe auf die gleiche Datenbank.
Ich nehme an, dass ich diese Zugriffe in CriticalSections packen muss. Ich weiß aber nicht genau, wie ich das anstellen muss.
Kann ich eine Variable zB. "var csVariable: TCriticalSection" definieren und wenn ja, wo genau? Muss ich dann irgendwo "csVariable.create" hinpacken, also instanziieren, wenn ja, wo? Und dann in den Execute-Methoden der Threads vor den Datenbankzugriffen "csVariable.enter" und dahinter "csVariable.leave" packen?
Oder wie geht das nun?

Gruß

Gambit
  Mit Zitat antworten Zitat
Jacki O

Registriert seit: 18. Okt 2003
73 Beiträge
 
#2

Re: Threads Frage zu CriticalSections

  Alt 12. Mai 2004, 19:24
Hallo,

ich mache das so:
Code:
var CS_MYSection : TRTLCriticalSection; //Globale Variable
procedure TForm1.StartThread;
begin
 // MyThread erzeugen,starten
end;



initialisation
 InitializeCriticalSection(CS_MYSection);

finalization
 DeleteCriticalSection(CS_MYSection);


...

procedure MyThread.Execute;
begin
 EnterCritcalSection(CS_MYSection);

 //Hier der Code, den der Thread ausführen soll

 LeaveCriticalSection(CS_MYSection);

end;
Gruß Jacki
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#3

Re: Threads Frage zu CriticalSections

  Alt 12. Mai 2004, 19:46
Jetzt kennt die Unit mit den Threads "EnterCritcalSection" nicht(undefinierter Bezeichner), hab irgendwie nen Brett vorm Kopp...

...blödsinn, war ein Paste und Copy Fehler...sorry

wobei das Ganze doch irgendwie doch alles Schwachsinn ist, was ich in meiner Frage gestellt hab', warum sollte ich nicht in zwei Threads einfach auf die gleiche Datenbank zugreifen können...


Gambit
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Threads Frage zu CriticalSections

  Alt 12. Mai 2004, 22:37
weil wenn der eine Thread einen DS ändert und der zweite gleichzeitg selben DS ausliest er nur Datenmüll auslesen könnte. Es könnte auch Probleme geben, wenn beide gleichzeitig in die DB schreiben wollen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#5

Re: Threads Frage zu CriticalSections

  Alt 13. Mai 2004, 09:04
Das stimmt, kann aber in meinem verwegenen Programm eigentlich nicht passieren.

Danke!!

Gambit
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Threads Frage zu CriticalSections

  Alt 13. Mai 2004, 09:21
Wenn du meinst. Sag abert bitte Bescheid wie es heißt, bevor du es veröffentlichst, damit ich der Datenbanke keine wichtigen Daten anvertraue.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Threads Frage zu CriticalSections

  Alt 13. Mai 2004, 09:25
@luckie: eine ordentliche datenbank sollte auch zurecht kommen wenn mehrere verbindungen bestehen - und wenn das proggy das absichert das da nicht gleichzeitig gelesen und geschrieben wird bzw. sich das nicht gegenseitig stört ist doch alles ok
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Threads Frage zu CriticalSections

  Alt 13. Mai 2004, 09:37
Schon klar, aber von der BDE habe ich da nicht all zu viel positives in dieser Beziehung gehört und eventuell besteht seine DB ja aus einer typisierten Datei oder so was....
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#9

Re: Threads Frage zu CriticalSections

  Alt 13. Mai 2004, 09:43
nein, ist MySQL. Weiß aber nicht, ob das da besser läuft.

Gruß

Gambit
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Threads Frage zu CriticalSections

  Alt 13. Mai 2004, 09:49
Eigentlich sollte die Datenbank selbst "thread-safe" sein. Warum meinst Du überhaupt CriticalSections zu benötigen?

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  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 20:42 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