IPC und Objektzugriff aus anderen Threads

Tech Tip: Click here to run a free scan for Windows Errors and optimize PC performance



Hallo NG,

ich habe gerade angefangen mich mit Threads zu beschaeftigen und renne
wohl gerade in die ganzen Probleme, die dieses Thema mit sich bringt.
Vielleicht koennt Ihr mir ja ein wenig helfen, mich in diesem
Dschungel zurechtzufinden.

Akut geht es momentan darum, eine generisches Logging Assembly fuer
meine Applikationen zu schreiben.

Vereinfacht dargestellt, handelt es sich dabei um eine Main-Thread,
der mehrere Worker-Threads starten soll. Hier mal eine vereinfachte
Darstellung, wie ich mir das Ganze gedacht habe :

Main Thread : Empfaengt ueber Methoden Log Statements von einem
Programm, formatiert diese und stellt die formattierten Daten dann in
eine ArrayList (die innerhalb dieser Klasse definiert ist).

Worker Thread 1 : Soll stupide die Daten aus der ArrayList in eine
Datei schreiben.

Worker Thread 2 : Ueberwacht die Datei und wenn sie zu gross wird,
soll ein Flag (Ereignis) in Worker Thread 1 gesetzt werden der das
Schreiben stoppt, dann die Datei verkleinert, und das Schreiben im
Worker Thread 1 wieder startet.


Meine Probleme :

1. Ich kann aus dem Worker Thread 1 nicht auf die ArrayList im Main
Thread zugreifen. Waere sowas ueber Singleton Klassen machbar, oder
funktionieren die nur im eigenen Thread ?

2. Wie weit sind Singletons eigentlich gueltig ? Threadweit ?
Prozessweit ? Systemweit ?

3. Ich habe gelesen, dass es fuer die IPC diverse Ansaetze in .NET
gibt (Remoting, Mutexe, etc.) - jedoch hat mich das ganze etwas
verwirrt und ich bin mir nun absolut unschluessig, welche Methoden
fuer mich Sinn ergeben und welches veraltete und welches zeitgemaesse
Ansaetze sind. Hat dazu vielleicht jemand einen Link, wo man sowas
nachlesen kann ?

4. Generell, wie kann ich einem Worker Thread Kommandos uebermitteln,
wie z.B. StartWork, InterruptWork, Shutdown, etc ? Der Thread sollte
dann auch entsprechend den internen Status zurueckgeben bzw. man
sollte diesen Status abfragen koennen wie z.B. Working, Interrupted,
TermInitialized, etc. Hat dazu jemand eine Idee, mit welcher Technik
man sowas am besten realisieren koennte ?

Jede Hilfe und jedes Beispiel sind herzlich willkommen .. :o)


Danke & Gruss,

Sven
.



Relevant Pages

  • Re: IPC und Objektzugriff aus anderen Threads
    ... Datei schreiben. ... Worker Thread 2: Ueberwacht die Datei und wenn sie zu gross wird, ... 'probieren' ist bei Multi-Threading unseriös. ...
    (microsoft.public.de.german.entwickler.dotnet.csharp)
  • JBossMQ Experten gesucht
    ... Es werden dabei EJB2 CMP Beans commited. ... Im Thread Dump ist kein Worker Thread zu sehen laut JMX console sind aber ...
    (de.comp.lang.java)
  • Absturz in Release Build :-(
    ... Ich hab für eine Funktion mit AfxBeginThread() einen worker Thread ... Wenn ich diesen Thread einmal starte/benutze und danach das Programm ...
    (microsoft.public.de.vc)
  • Threads UI; Worker
    ... hr = CoMarshalInterThreadInterfaceInStream(IID_IUnknown, pUnknown, &m_pStreamMarshalling); ... // for the worker thread ... HRESULT hr = ...
    (microsoft.public.de.vc)
  • Re: Installation Cardreader =?iso-8859-1?Q?schl=E4gt_fehl_-_falscher?= =?iso-8859
    ... Datei nur umzubenennen. ... Bin dann in der Installationsroutine einen Schritt ... Aber erstmal egal, aktuell scheint mein Cardreader jedenfalls da zu sein. ... Previous by thread: ...
    (microsoft.public.de.german.win2000.sonstiges)