[英]Passing data between multiple instances of same application
我有一個WPF客戶端應用程序,該應用程序在任何時間點最多可以有一個實例,如果用戶運行第二個實例,則應將輸入參數傳遞給應用程序的第一個實例並退出。 即我用參數“ hello”運行第一個實例,然后用新參數“ welcome”再次啟動同一appln的新實例,否,第二個實例應將數據“ welcome”傳遞給第一個實例並退出。
除了WCF和.Net遠程處理之外,還有什么最簡單,最干凈的方法嗎?
目前,我可以使用WindowsEventHandle將第一個實例設置為活動狀態,但無法傳遞數據。 這是在同一登錄名的同一台計算機上
這是非常基礎的,但是您可以簡單地寫入文件,並讓其他應用程序實例根據當前時間戳(以毫秒為單位)監視文件中具有唯一ID的新命令的新命令。
當然是。 我們嘗試了多種方法,但是使用互斥鎖的方法似乎效果最好。
這里有一些示例: 如何在每個用戶會話中檢查運行的進程?
關於互斥鎖的好文章http://odetocode.com/blogs/scott/archive/2004/08/20/the-misunderstood-mutex.aspx
一個簡單的實現https://stackoverflow.com/a/19326/444149
如果您進行更深入的搜索,我相信SO中會有一個很好的示例,該示例顯示了互斥事件如何可用於觸發另一個應用程序實例中的某些內容
查看內存映射文件從.NET 4開始,它們已經可用,甚至可以與非托管應用程序共享內存。
非持久性內存映射文件非持久性文件是與磁盤上的文件不關聯的內存映射文件。 當最后一個進程處理完文件后,數據將丟失,並且垃圾回收將回收該文件。 這些文件適用於為進程間通信(IPC)創建共享內存。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.