我使用C#(MS visual studio 2010)來模擬生產者 - 消費者問題。我有2個exe程序,一個是Producer,另一個是Consumer。當他們執行時,Producer會將100個整數插入隊列中,而Consumer將按順序將它們從該隊列中移除。如何在C#中的兩個進程之間使用共享隊列?
我的問題是如何在兩個進程之間使用共享隊列,並且萬一我必須使用進程間通信傳遞一些小消息,我應該使用哪種機制(在剪貼板,COM,數據複製,DDE,文件映射,郵槽,管道,RPC,Windows套接字)?
非常感謝!
謝謝。我正在學習IPC,因此不需要多線程程序。我有一個新問題,我想使用一個文件作爲緩衝區,生產者程序將數據寫入它,而消費者程序從它讀取數據。由於緩衝區總是有大小限制,所以每次從中讀取數據時都必須刪除一行。谷歌說,要從文件中刪除一行,我必須將其重寫爲一個臨時文件,然後覆蓋現有文件。有沒有更好的方法從文件中刪除第一行? – Mia 2011-03-01 06:15:09
是的,將其視爲循環緩衝區。換句話說,跟蹤開始和結束(最初,都指向前面)。當你添加時,推回去。閱讀時,向前推前方。在緩衝區的末尾,只是換行。有關詳細信息和鏈接,請參見http://en.wikipedia.org/wiki/Circular_buffer。 – 2011-03-02 15:53:14