Obecnie pracuję nad wtyczką C# (mogę również używać Pythona) dla dwóch oddzielnych programów, które muszą się komunikować. W pierwszym pierwszym programie dekonstruuję geometrię 3D na krawędziach, punktach, normach itd. Następnie wysyłam wszystkie te dane do mojego pluginu w drugim programie, aby go odbudować. Idealnie byłoby tak szybko, jak to możliwe, aby utrzymać rzeczy "w czasie rzeczywistym".Wysyłanie dużych ilości danych między dwoma programami C#
Obecnie konwertuję moje dane za pomocą JSON i zapisuję JSON na dysk. Następnie mój drugi program obserwuje zmiany plików, a następnie odczytuje plik i korzysta z danych JSON.
Zdecydowanie największym szyjkiem butelki całej mojej wtyczki jest proces odczytu/zapisu. Musi być szybszy sposób niż zapisywanie do pliku.
MemoryMappedFiles: http://msdn.microsoft.com/en-us/library/dd997372.aspx. Będziesz musiał trochę udostępnić na początku używając plików, ale potem wszystko będzie robione w pamięci RAM. –
Użyj nazwanego potoku. Sprawdź 'NamedPipeServerStream' i' NamedPipeClientStream' –
A MemoryMappedFile wprowadzi tyle problemów, ile rozwiązuje. –