Threadkommunikation
-
Hi,
habe folgende Aufgabenstellung:
Ein Thread soll Meldungen in eine Log-Datei wegschreiben. Der Thread wartet also nur auf Nachrichten, beim Empfang schreibt er die Nachricht in eine Datei und wartet auf weitere Nachrichten... (also ein Logger-Thread)Dann gibt es andere Threads, die Nachrichten an die Logger-Thread versenden sollen...
Da ich nur <= .NET 2.0 einsetzen kann, fallen Pipes wohl aus...
ich denke da an WINDOWS-Messages... geht das?
die Nachrichten-versender rufen also z.B. PostMessage() auf...
wie sieht es dann konkret auf der Logger-Thread-Seite aus.....
-
Nimm eine Queue/Liste, ein AutoResetEvent und ein "lock"...
-
Jochen Kalmbach schrieb:
Nimm eine Queue/Liste, ein AutoResetEvent und ein "lock"...
..d.h. die Nachrichten schreibe ich (treadübergreifend) in eine "Queue", mit "AutoResetEvent" und "lock" mache ich dann die Synchronisierung....?
wollte eigentlich die Nutzung globaler Speicherbereiche vermeiden....
-
wollte eigentlich die Nutzung globaler Speicherbereiche vermeiden....
Falls Du mit globaler Speicherbereich von verschiedenen Threads gemeinsam genutzer Speicher meinst: warum? Abhilfe könnte z.B. eine Socketverbindung sein. Aber eine gemeinsam genutzte Queue ist völlig ok - warum nicht? Das muss keine globale Variable sein!
Falls Du mit globaler Speicherbereich von verschiedenen Threads gemeinsam genutze gloable Variablen meinst: Ja, unbedingt vermeiden.