AGB  ·  Datenschutz  ·  Impressum  







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

Log Datei Threadsave speichern

Ein Thema von franktron · begonnen am 11. Nov 2009 · letzter Beitrag vom 2. Dez 2009
Antwort Antwort
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Log Datei Threadsave speichern

  Alt 11. Nov 2009, 10:11
Wie kann ich eine Logdatei Threadsave Speichern.

Also ich habe 2 Threads die Daten per FTP Verschicken, jetzt sollen diese Threads in eine Logdatei speichern
aber wenn jetzt Thread 1 und Thread 2 gleichzeitig was schreiben wollen knallst wohl.
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Log Datei Threadsave speichern

  Alt 11. Nov 2009, 10:18
Dann musst du den Zugriff mit Delphi-Referenz durchsuchenCriticalSection synchronisieren.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

Re: Log Datei Threadsave speichern

  Alt 11. Nov 2009, 10:43
Gibts da irgendwo eine Howto wie das genau funktioniert.
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

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

Re: Log Datei Threadsave speichern

  Alt 11. Nov 2009, 10:49
Du erstellst eine Klasse, von der du ein Objekt an beide Threads übergibst:
Delphi-Quellcode:
type
 TDatei=class
  constructor Create; //FCriticalSection.Create
  Destructor Destroy; override //fCriticalSection.free;
 private
  FFileName:string;
  FCriticalSection:TCriticalSection;
 public
  property FileName:string;
  procedure WritetoFile(const s:String);
end;

//...
procedure TDatei.WritetoFile;
begin
  CriticalSection.Enter;
  try
    öffne Datei
    schreibe Datei
    schließe Datei
  finally
    CriticalSection.leave;
  end;
end;
Jetzt kannst du aus jedem Thread einfach WritetoFile aufrufen und alles ist abgesichert.

(aber wird Dateiarbeit nicht auch vom OS abgesichert )
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

Re: Log Datei Threadsave speichern

  Alt 11. Nov 2009, 11:00
Zitat von sirius:
(aber wird Dateiarbeit nicht auch vom OS abgesichert )
Ja aber es können doch nicht 2 Prog gleichzeitig schreiben oder ?
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.167 Beiträge
 
Delphi 12 Athens
 
#6

Re: Log Datei Threadsave speichern

  Alt 11. Nov 2009, 11:16
Wenn die Zugriffsrechte es verbieten, dann nicht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
uoeb7gp
(Gast)

n/a Beiträge
 
#7

Re: Log Datei Threadsave speichern

  Alt 12. Nov 2009, 13:40
HI, versuchs damit.

Features:
Threaded-Cached Logwriter, entwickelt für hocklast Serveranwendungen, um WorkerThreads nicht zu behindern.

lg.
Angehängte Dateien
Dateityp: pas logwriter_179.pas (12,2 KB, 73x aufgerufen)
  Mit Zitat antworten Zitat
Viktorii

Registriert seit: 19. Jul 2007
358 Beiträge
 
#8

Re: Log Datei Threadsave speichern

  Alt 2. Dez 2009, 12:55
Moin.


Ist TFileStream nicht threadsafe?

Habe sowas bis jetzt immer damit gemacht
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.167 Beiträge
 
Delphi 12 Athens
 
#9

Re: Log Datei Threadsave speichern

  Alt 2. Dez 2009, 13:06
Nein, ist er grundsätzlich erstmal nicht.

Wenn du aber jedem "Read/Write" die Startposition getrennt mitgibst oder jeder Thread seinen eigenen Stream auf die selbe Datei hat, dann wäre er teilweise threadsicher.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 18:47 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