簡體   English   中英

在兩個C#程序之間發送大量數據

[英]Sending large volume of data between two C# programs

我目前正在為一個需要通信的兩個獨立程序開發一個C#(我也可以使用python)插件。 在第一個第一個程序中,我將3D幾何體解構為邊緣,點,法線等。然后,我將所有這些數據發送到我的第二個程序中的插件中進行重建。 理想情況下,這將盡可能快地發生以保持“實時”。

目前,我正在使用JSON轉換數據,並將JSON寫入磁盤。 然后我的第二個程序監視文件更改,然后讀取文件並使用JSON數據。

到目前為止,我整個插件的最大瓶頸是讀/寫過程。 必須有一種比寫入文件更快的方法。

有幾種方法可以使用進程間通信。
最着名的是在不同的機器之間使用:WCF(.NET 3.5)和Remoting(.NET 2)

對於機上通信,您可以選擇使用命名管道或內存映射文件。

內存映射文件與您的解決方案類似,因為它們使用頁面文件作為備份。

我認為命名管道解決方案是最方便的:你設置一個“服務器”流並等待一些“客戶端”連接。 然后就像傳輸任何其他流一樣傳輸數據。

這是NamedPipeServerStream
這是NamedPipeClientStream
那里的代碼示例幾乎涵蓋了它。

我認為使用命名管道的WCF可以完成這項工作,你只需要創建傳輸對象,它將被序列化,它將全部由WCF自動完成,或者你可以准備你的現有對象被命名管道轉移而不是真的很大的開銷。 使用json會很好但它會創建額外的圖層,並且使用WCF傳輸可以立即使用的對象而無需json進行轉換。 (實際上它們被翻譯成xml,但你不是自己做的,所以它比你解析json更好,我認為)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM