ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
2266
2266
EMPFEHLEN
-
07.04.08 10:19 #1
- Registriert seit
- Mar 2007
- Beiträge
- 125
Hi,
mal ne Hardcorefrage.
Ich möchte/will/muss eine Prozess-Prozess Kommunikation aufbauen.
Ein Prozess macht irgendwas.
Prozess sendet nun Daten an 4 Prozesse.
Von diesen 4 Prozessen bekommt er Daten zurück.
Wie kann man das realisieren ?
Ich kann keine Threads verwenden - es müssen Prozesse sein.
Zu den 4 Prozessen geht eine Bilddatei.
Zurück kommen Werte - strings, doubles, ints.
Die verwertet er dann.
Ich habe was über Windows API und WM_COPYDATA gelesen und über MailSlots.
Oder doch Remoting ?
Welche Kommunikation geht am schnellsten ?
mfg
Martin
-
07.04.08 10:57 #2Konstantin Denerz Tutorials.de Gastzugang
Hallo Martin,
um welche Art von Anwendung handelt es sich in deinem Fall?
Soll die Prozessverarbeitung innerhalb einer Anwendung stattfinden oder innerhalb mehrerer/verteilter Anwendungen?
Gruß Konstantin
-
07.04.08 11:14 #3
- Registriert seit
- Mar 2007
- Beiträge
- 125
Also es geht um Bildverarbeitung.
Ein Prozess nimmt das Bild auf.
Nun kommt eine Verarbeitung die nicht in Threads aufgeteilt werden kann aber aufgeteilt werden muss.
Wie die Verteilung erfolgen soll ist eigentlich egal - hauptsache schnell.
-
07.04.08 11:31 #4Konstantin Denerz Tutorials.de Gastzugang
Hallo,
also eine Bildverarbeitung kannst du auch in Threads durchführen, solange dies in einer Anwendung geschehen soll.
Das wäre die leichteste Lösung. Weiß nicht, ob die Verwendung von .NET-Remoting performant ist, da du die Objekte ständig serialisiert/deserialisiert.
Naja mehr Informationen über deinen Anwendungsfall würden bei der Problemlösung weiter helfen. Z.B. Findet eine Bildverarbeitung von mehreren tausend Bildern statt oder ...?
Soll dies in einem Online/Offline-Modus stattfinden?
Gruß Konstantin
-
07.04.08 11:43 #5
- Registriert seit
- Mar 2007
- Beiträge
- 125
das mit den Threads ist klar aber wir müssen hier eine Bibliothek bzw. ein OCX Objekt verwenden das nicht in Threads aufgeteilt werden kann.
der hauptprozess nimmt ein Bild online auf und teilt es in 4 Unterbilder.
Die 4 Bilder sollen möglichst parallel abgearbeitet werden.
Normalerweise kein Problem abewr wie gesagt das OCX Objekt.
Nun war die Idee da Prozesse zu verwenden.
Da könnte man 4 dieser Objekte generieren.
Hab leider noch nie etwas in der Richtung Remoting etc. gemacht.
Threadskenntnisse ja, Prozesse nein
-
07.04.08 11:52 #6Konstantin Denerz Tutorials.de Gastzugang
Mein Vorschlag ist, bau die OCX-Objekte zur Laufzeit in .NET-Objekte um. Was brauchst du von den OCX-Objekten? Nur den Zustand oder nicht? Gibts die Libs öffentlich?
Gruß Konstantin
-
07.04.08 15:06 #7
- Registriert seit
- Mar 2007
- Beiträge
- 125
ne ne - nix öffentlich.
Die kosten einiges.
den Objekten kann man eine spezielle Datei geben.
Die Datei beinhaltet die Bildverarbeitung.
Nun kann ich mittels diesem Objekt Variablen und Bilder übergeben
dann sagt man nur noch start und die datei wird durch das objekt abgearbeitet.
zum schluss lese ich variablen über das Objekt aus.
mfg
Martin
-
09.01.09 14:56 #8
- Registriert seit
- Jan 2009
- Beiträge
- 1
Hi,
habe ein ähnliches Problem zu lösen. Habe ebenfalls ein Bilddokument, welches mit einer nicht multi-threading fähigen Dll verarbeitet werden soll. Trotzdem soll eine parallele Verarbeitung von mehrereb Dokumenten möglich sein.
Wie has du dein Problem gelöst? Remoting, Memeory mapped files, sockets ...?
Gruß,
Heidi
-
12.01.09 08:58 #9
- Registriert seit
- Mar 2007
- Beiträge
- 125
hi,
ich habs per Memory Mapped File gemacht.
Geht relativ einfach mit den Win APIs.
Auch recht zuverlässig.
Als Signal das etwas in die MMO geschreiben wurde nehme ich ebenfalls ein Win API.
SystemEvent.
Man muss nur die bytes des Bitmaps holen und dann in die MMO schreiben/kopieren.
Als erstes Byte würde ich aber die Größe des Datenpaketes rein legen.
Dann weiß die Gegenseite wie viele bytes geholt werden müssen.
Falls es mehrere Bilder sein können in der MMO dann braucht du noch ein paar ein paar Längenbytes zusätzlich für des Bild seperat.
Sockets und Remoting war einfach zu langsam.
falls du noch fragen hast .. stehe bereit.
mfg
Martin
P.S. ab Framework 4.0 soll es eine Memory Mapped File Klasse geben.
Dann wird es etwas "schöner" im Code.
Ähnliche Themen
-
Prozess Snapshot erstellen, Prozess abschießen, Prozess neustarten
Von Marius Heil im Forum Coders TalkAntworten: 2Letzter Beitrag: 28.09.10, 02:43 -
Ergebnis von FTP Prozess? und: Prüfen ob spezieller Prozess läuft
Von XtremeCJ im Forum .NET CaféAntworten: 1Letzter Beitrag: 07.10.09, 19:53 -
Prozess
Von Kaiser206 im Forum Microsoft WindowsAntworten: 6Letzter Beitrag: 26.12.05, 18:24 -
Prozess anhand Prozess-Id aktivieren
Von krauti im Forum C/C++Antworten: 3Letzter Beitrag: 27.01.05, 08:53 -
Prozess
Von ProgFreak im Forum C/C++Antworten: 3Letzter Beitrag: 16.12.04, 22:26





Zitieren
Login





