kostenloser Webspace werbefrei: lima-city


[C#] Ein großes oder mehrere 'kleine' Programme?

lima-cityForumProgrammiersprachenProgrammieren mit .NET & Mono

  1. Autor dieses Themas

    faultier89

    faultier89 hat kostenlosen Webspace.

    Hi

    Ich arbeite zur Zeit privat an einem Software-Projekt. Dabei besteht das Programm im wesentlichen aus 2 Teilen.

    Der eine Teil läuft als Server und soll praktisch 24/7 seine Aufgabe erfüllen. Ein anderer Teil ist zum Vorbereiten neuer und manipulieren alter Aufgaben für den Server. Der Teil besteht im wesentlichen aus einer Oberfläche mit der ein paar XML-Datein verwaltet werden und ein paar andere Datein rumgeschaufelt werden. Der zweite Teil hört sich jetzt nach ziemlich wenig an, ist aber auch ziemlich komplex.

    Löst man das jetzt am besten indem man ein großes Programm schreibt oder besser doch 2 Programme?


    Angenommen ich löse das ganze über 2 Programme:

    Eine Aufgabe wird repräsentiert von einem Ordner im Filesystem. In diesem befinden sich mehrere XML-Dateien sowie andere zu bearbeitende Daten. Sowohl der Server, als auch das Oberflächenprogramm müssen auf die XML-Dateien lesend und auf mindestens eine auch schreibend zugreifen. Hier kann es also zu konflikten kommen. Der Server soll jede Aufgabe in einem bestimmten Rythmus neu abarbeiten, wobei der rekursiv durch die Ordnerstruktur mit den Aufgaben geht.

    Wie löse ich dieses Problem geschickt? Reicht es aus im jeweiligen Ordner eine Datei als Flag zu erstellen? Oder ist es sinnvoller das anders zu lösen? Wenn ja, wie?

    MfG

    Faultier
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo faultier89,

    wenn die Sache nicht über mehrere Rechner verteilt wird, dann braucht man nicht unbedingt 2 Programme.
    Wenn man nur ein Programm macht, dann wäre es denkbar, den Verarbeitungsteil in einem oder mehreren Threads zu implementieren. Die Oberfläche sollte man mit Form.Hide() verstecken können und um sie wieder anzuzeigen kann man ein kleines Tray-Icon machen.
    Um den Zugriff auf die Resourcen zu steuern würde ich eine Verwaltungthread bauen, der die Arbeitsthreads und den Resourcenzugriff überwacht.
    Wenn von der GUI (auf Grund von Benutzerinteraktionen) auf eine Resource zugegriffen werden soll, dann fragt man den Verwaltungsthread nach einem Lock für die entsprechende Datei. Sofern keiner der Arbeitsthreads darauf zugreift wird die Resource für die GUI freigegeben und für die Arbeitsthreads gesperrt. Wenn man fertig ist, dann muss man dem Verwaltungsthread bescheidgeben, dass er wieder Arbeitsthreads auf die Datei loslassen kann.
    Mit zwei Programmen wäre es dasselbe. Dabei muss der Client beim Server nach einem Lock fragen.

    Edit: Es wäre wahrscheinlich sinnvoller die Locks auf Taskbasis zu vergeben, d.h. man sperrt einen kompletten Ordner statt nur einzelner Dateien.

    Beitrag zuletzt geändert: 9.4.2011 15:13:30 von darkpandemic
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!