none
Befehle merken RRS feed

  • Frage

  • Hallo,

    ich habe eine Applikation, die von "aussen" Signale empfängt und dann bestimmte Berechnungen ausführen muss. Diese Berechnungen dauern aber relativ lange. Ein Signal ist für ein bestimmtes Datenpaket (z.B Bild) bestimmt; kommt das Signal, so werden die Berechnungen auf diesem Datenpaket durchgeführt. Danach können andere Signale für das gleiche Datenpaket kommen. Während dieser Berechnungen kann bereits ein anderes Signal für das nachfolgende Datenpaket kommen, und dann wieder nachfolgende Signale für dieses Paket.

    Ich muss also die  richtige Zuordnung zwischen dem Signal und dem Datenpaket herstellen. Zudem muss ich mir mekren welche Befehle in welcher Reihenfolge für eine Datenpaket ausgeführt werden müssen.

    Wie kann man so etwas am besten verwirklichen?

    Danke für die Antwort!

    Montag, 1. Dezember 2014 09:00

Antworten

  • Hi,

    ich würde mir eine Klasse erstellen, die den Signalschlüssel (wie auch immer der bei dir aussieht), die Reihenfolge und dann ggfs. auch die Datenpakete speichert. Danach dann eine List<EigeneKlasse> erstellen, in die die Elemente geschrieben werden.

    Diese Liste arbeitest Du dann eins nach dem anderen ab. D.h. Du stößt die Verarbeitung nicht sofort bei Eingang eines Signals an sondern speicherst dort nur das neue Signal in deine Liste und arbeitest diese in einem separaten Thread ab.

    Alternativ kann man auch eine Queue erstellen. Ob das in deinem Fall aber sinnvoll ist, kann ich dir so nicht sagen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Montag, 1. Dezember 2014 10:12
    Moderator

Alle Antworten

  • Hi,

    ich würde mir eine Klasse erstellen, die den Signalschlüssel (wie auch immer der bei dir aussieht), die Reihenfolge und dann ggfs. auch die Datenpakete speichert. Danach dann eine List<EigeneKlasse> erstellen, in die die Elemente geschrieben werden.

    Diese Liste arbeitest Du dann eins nach dem anderen ab. D.h. Du stößt die Verarbeitung nicht sofort bei Eingang eines Signals an sondern speicherst dort nur das neue Signal in deine Liste und arbeitest diese in einem separaten Thread ab.

    Alternativ kann man auch eine Queue erstellen. Ob das in deinem Fall aber sinnvoll ist, kann ich dir so nicht sagen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Montag, 1. Dezember 2014 10:12
    Moderator
  • wenn du dir einfach eine List<> machst?

    list.Add(befehl) wenn ein neuer kommt,

    nach dem abarbeiten list.remove[0] und dann schauen ob noch  ein neuer befehl vorhanden ist?

    Montag, 1. Dezember 2014 10:14