Objekt-Sharing zwischen Anwendungen?

Sagen wir, ich habe eine große Daten-array aktualisiert, 1000+ mal pro Sekunde.

Eine andere Anwendung zugreifen möchte, und Lesen Sie das array in einer kurzen Zeit. Beide Anwendungen sind auf der gleichen Maschine.

Habe ich versucht, mit Hilfe von WCF für die Kommunikation zwischen Prozessen, aber serialisieren und senden Sie die ganze Palette (oder einem großen Objekt), Tausende Male pro Sekunde ist nicht machbar Leistung Weise.

Gibt es eine Möglichkeit, direkt auf Objekte aus verschiedenen Applikationen in c#?

  • Was machst du, dass ist Update ein Daten-array 1000+ mal pro Sekunde? Das klingt wie ein archetchture Problem. Brauchen Sie wirklich alle Updates werden in Echtzeit gesendet? Können Sie queue-updates? Können Sie batch-updates, so dass mehr als ein update gesendet wird, in der eine "Nachricht"?
  • sharedmemory.codeplex.com vielleicht
  • Chamberlain Spielen/Simulationen, die Sie benötigen Echtzeit-Verarbeitung. Ja, vielleicht ist es eine fehlerhafte Ansatz, um separate Komponenten, und führen Sie Sie in verschiedenen Anwendungen.
  • Wenn es gaming ist, würde ich neu bewerten, was die Netto-Gewinne, Sie werden immer aus separaten Anwendungen, und sind diese Gewinne Wert, die Kosten von dieser Langsamkeit. Wenn es Simulationen würde ich versuchen, batch-oder queue-Daten zu senden, die Sie in größere Stücke, so dass die overhead-Kosten pro update kann abgeschrieben werden.
  • sharedmemory klingt toll, aber es ist nur in der Lage zu teilen, Puffer und arrays von primitiven, keine Objekte, kein Objekt - arrays- hätten Sie serialisiert werden und dann geschrieben, dass shared buffer, wie Rohre.
InformationsquelleAutor brandon | 2015-02-05
Schreibe einen Kommentar