我有2個進程WriterProc和ReaderProc。如何在C#中進行進程間通信時進行進程間通信?
WriterProc只寫並且ReaderProc只讀。我可以使用命名管道進行通信,但問題是ReaderProc在編寫器寫入時可能不活動,反之亦然。
兩者都可以同時處於活動狀態,因此可能需要寫入和讀取之間的同步。
在c#4中會有什麼建議的方式?
我有2個進程WriterProc和ReaderProc。如何在C#中進行進程間通信時進行進程間通信?
WriterProc只寫並且ReaderProc只讀。我可以使用命名管道進行通信,但問題是ReaderProc在編寫器寫入時可能不活動,反之亦然。
兩者都可以同時處於活動狀態,因此可能需要寫入和讀取之間的同步。
在c#4中會有什麼建議的方式?
Message Queuing服務旨在用於像您這樣的情況。它們提供了有保證的消息傳遞,因此如果作者在讀者沒有運行的情況下忙於書寫,讀者在啓動之後會發現一個充滿消息的隊列。
我們可以使用像MappedFiles這樣的低級別的東西嗎? – Rohit 2011-12-28 15:42:59
@Rohit在任何較低級別的應用程序中,您最終都會重新實現持久性消息的功能,因爲您可能會看到很多特殊情況(讀取器崩潰,寫入器崩潰,計算機重新引導,以至僅舉幾例)。您當然可以通過內存映射文件進行通信,甚至通過常規文件進行通信。但是,爲了實現有保證的交付,您需要考慮的同步問題的數量是巨大的。 – dasblinkenlight 2011-12-28 15:50:58
如何使他們WCFs。
作者WCF將發信號讀取器WCF停止讀取,當它要讀取,然後寫入完成後,信號。
什麼樣的數據被讀取/寫入? – ken2k 2011-12-28 14:53:26
所以你正在尋找某種「持久的IPC」?在讀者和作者之間使用文件IMO *或*代理。 – 2011-12-28 14:53:58