我想從C應用程序向C#應用程序發送大量字符串(〜250000)作爲< 1秒。當我用WM_COPYDATA和SendMessage完成時,我的C#應用程序掛起。我還可以做些什麼?命名管道只包含在.NET 4中,而我正在使用.NET 2.我要堅持使用WM_COPYDATA並追加到列表中(這是一種快速操作)。然後後處理這個列表。C和C#應用程序之間IPC最快的方式是什麼?
2
A
回答
5
最快的選擇可能是使用named pipes via P/Invoke。這仍然比大多數其他IPC選項的性能高得多。
+0
不確定,但我認爲這段代碼是越野車。它發送一些字符串,然後停止(從C應用程序端) – blez
+1
@blez:確保閱讀該帖子底部的註釋 - 有一些標記用於需要設置的重疊IO,這些標記不在原來的帖子... –
1
不是最快在Win32目前,但值得一試:0mq
使用在Windows TCP套接字,但很有效。
對於一個封閉的源溶液我不認爲29西方Ultra Messaging可以很容易地壓倒,包括零拷貝消息的在.NET
4
共享存儲器中的罕見的功能或MMF是最快的方法。它與內核對象一樣快,用於發送關於數據可用性的信號。而且,更重要的是,您可以先打開共享內存,然後將數據直接放在那裏(節省一次複製操作)併發送給其他應用程序。其他應用程序可以直接從共享內存中使用數據(同樣,不需要複製)。
相關問題
- 1. Java和C++之間最快的IPC
- 2. 在c程序和C++ Qt應用程序之間使用什麼Linux IPC?
- 3. 本機C/C++和C#(.NET)之間最輕的IPC解決方案是什麼?
- 4. 什麼是兩個C#應用程序(32位和64位)之間的IPC的最佳方式
- 5. IPC與C++應用程序和其他應用程序之間的C + +和VB.Net
- 6. 在同一臺機器上運行的Java和C++應用程序之間,IPC的最佳方法是什麼?
- 7. 什麼是.NET程序最快的IPC方法?
- 8. 在Java和C應用程序之間的IPC
- 9. 在C++和Java之間傳輸數據的最快方式是什麼
- 10. 在長期運行的c進程和python之間進行雙向IPC的最佳方式是什麼?
- 11. 什麼是在兩個應用程序之間進行通信的最佳和最快的方式?
- 12. Qt和C/C++之間的IPC
- 13. 在C++中反序列化樹的最快方式是什麼?
- 14. 什麼是C++和C#應用程序之間異步通信的最簡單方法
- 15. IPC連接Qt4和Qt5過程的最佳方式是什麼?
- 16. .NET與C++應用程序之間的IPC
- 17. C#應用程序之間的雙向IPC
- 18. 規劃和組織C應用程序開發的最佳方式是什麼?
- 19. 應用程序之間的最快數據傳輸方式
- 20. Python和C++應用程序的簡單但快速的IPC方法?
- 21. Python與C#之間的IPC
- 22. 在android應用程序之間傳遞數據的最佳方式是什麼?
- 23. 與Windows應用程序之間進行通信的最佳方式是什麼?
- 24. 在java和C++之間使用Socket for IPC的優缺點是什麼?
- 25. C++和c之間進行通信的最快方法#
- 26. C#和C++應用程序之間的map和shared_ptr序列化?
- 27. BHO和服務之間的C#IPC
- 28. 使用IPC與Python和C#進行通信的最簡單方法是什麼?
- 29. 在我的C#應用程序中嵌入IronPython的最佳方式是什麼?
- 30. 在Java應用程序中與Ogre(C++)接口的最佳方式是什麼?
這個SO問題有關於在.NET中使用共享內存的信息:http://stackoverflow.com/questions/439787/how-to-implement-shared-memory-in-net如果進程在同一臺機器上,很難獲得比這更快的速度。 –