myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
   » Plugin für Firefox
   » Plugin für IE7
   » Gadget für Vista
» Regeln
» Wie poste ich richtig?
» Datenschutzerklärung
» wbb-FAQ

Mitglieder
» Liste / Suche
» Karte / Anleitung dazu
» Stadt / Anleitung dazu
» Wer ist wo online?

Angebote
» ASP.NET Webspace
» Bücher
» Zeitschriften
   » dot.net magazin
   » visual studio one
» Accessoires

Ressourcen
» .NET-Glossar
» guide to C#
» openbook: C#
» openbook: Visual C#
» openbook: OO
» .NET BlogBook
» MSDN Webcasts
» dotnetjob.de
» Search.Net

Team
» Übersicht
» Wir über uns
» Bankverbindung
» Impressum

» Unsere MiniCity
MiniCity

» Anzeigen
» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Basistechnologien und allgemeine .NET-Klassen » Alle x Sekunden in Datei schreiben
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Alle x Sekunden in Datei schreiben

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
AnTri
myCSharp.de-Mitglied

Dabei seit: 27.04.2009
Beiträge: 88


AnTri ist offline

Alle x Sekunden in Datei schreiben

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

wie schreibe ich möglichst schlau alle x Sekunden in eine Datei ("messdaten.txt").

Ich habe das Problem seither so gelöst, der Nachteil liegt aber darin, dass während der Thread läuft keine Einträge in die Datei geschrieben werde, somit auch keine Kontrolle stattfinden kann.

C#-Code:
           FileStream fileStream = new FileStream("messdaten.txt", FileMode.Create, FileAccess.Write);
            StreamWriter streamWriter = new StreamWriter(fileStream);
            streamWriter.BaseStream.Seek(0, SeekOrigin.End);

           //Threadsicherheit
            m_mutex.WaitOne();

            while (!m_threadRunning)
            {
                string readValue =GetData();
                streamWriter.WriteLine(readValue);
                Thread.Sleep(1000);
            }
            streamWriter.Flush();
            streamWriter.Close();

            m_mutex.ReleaseMutex();

Um das Schreiben in die Datei zu veranlassen, muss ich ja den Streamwriter schließen. Ist es ein Problem, wenn ich den Writer z.B. alle 5 Sekunden neu erstelle und schließe?

Danke für Eure Hilfe!
09.02.2010 10:30 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
marsgk marsgk ist männlich
myCSharp.de-Mitglied

Dabei seit: 04.06.2005
Beiträge: 1.400
Entwicklungsumgebung: Notepad++ + csc + nmake
Herkunft: Linz, Austria


marsgk ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

ruf streamWriter.Flush() in der Schleife auf.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von marsgk am 09.02.2010 10:37.

09.02.2010 10:37 Beiträge des Benutzers | zu Buddylist hinzufügen
AnTri
myCSharp.de-Mitglied

Dabei seit: 27.04.2009
Beiträge: 88

Themenstarter Thema begonnen von AnTri

AnTri ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

vielen Dank für die schnelle Antwort. Eine Frage: Hat es irgendwelche NAchteile das Flush "so oft" aufzurufen?
09.02.2010 10:48 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Lector Lector ist männlich
myCSharp.de-Mitglied

images/avatars/avatar-552.gif

Dabei seit: 06.06.2006
Beiträge: 736
Entwicklungsumgebung: Visual Studio 2008


Lector ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Nur den 'Nachteil' dass eben so oft in die Datei geschrieben wird. Aber das war doch genau das was du wolltest.
09.02.2010 11:02 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
ujr
myCSharp.de-Poweruser/ Experte

Dabei seit: 24.11.2007
Beiträge: 1.054


ujr ist offline

RE: Alle x Sekunden in Datei schreiben

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von AnTri:
wie schreibe ich möglichst schlau alle x Sekunden in eine Datei ("messdaten.txt").

Nimm einen Timer. Außerdem ist ein Mutex übertrieben - lock tut's besser.
09.02.2010 11:14 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
278278 278278 ist männlich
myCSharp.de-Mitglied

Dabei seit: 11.02.2010
Beiträge: 12
Entwicklungsumgebung: Visual Studio 2008/10
Herkunft: Brandenburg


278278 ist offline

FileShare

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Möglicherweise hilft die das weiter

C#-Code:
FileStream("File.txt",FileMode.Open, FileAccess.ReadWrite, FileShare.Read);
11.02.2010 14:23 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 7 Monate.
Der letzte Beitrag ist älter als 6 Monate.
Antwort erstellen


© Copyright 2003-2010 myCSharp.de-Team. Alle Rechte vorbehalten. 09.09.2010 13:28