2016-12-06 81 views
0

我正在c#中構建一個小型CMS,允許用戶編輯和更新報告信息。即報告名稱,作者,描述等,然後保存到JSON文件。c#檢查另一臺電腦上是否有其他應用程序實例正在運行

此JSON文件然後在本地WebApp中用作前端。

請注意,這是一個內部應用程序,每個使用CMS的人都可以訪問同一個網絡驅動器。

當用戶在PC#1上打開CMS時,我想給用戶一個提示,試圖打開PC#2上的CMS並模擬Excel的「只讀」功能,從而禁用某些功能,直到另一例已關閉。

問:根據您的經驗,最優雅的方式是做什麼?

我有一個想法:在關閉時

當CMS被打開的PC#1,它創建了一個名爲isopen.txt或類似文件,然後刪除該文件。當CMS在PC#2上打開時,它會檢查文件是否存在,然後決定CMS將運行的「權限」狀態。可以在每'x'秒後調用此'檢查'方法,然後提示用戶CMS現在能夠進入可編輯狀態。

我不確定這是否是最好的方式去,並會喜歡一些有經驗的C#開發人員輸入!

+0

您使用哪個C#對象來閱讀JSON? (FileStream或StreamReader等) –

+0

我已經使用StreamReader。然後通過使用Newtonsoft.Json庫進行反序列化 – DeclanPossnett

回答

0

您可以創建一個FileStream,然後從它的initalize StreamReader

FileStream f = new FileStream(@"path\file.json", FileMode.Open, 
FileAccess.ReadWrite, FileShare.Read); 

using (StreamReader r = new StreamReader(f)) 
{ 
    string json = r.ReadToEnd(); 
    //your subsequent json operations 
} 

FileShare.Read允許只讀文件訪問,而你就可以了using範圍內工作。

此外,這種方式是有益的,因爲您不必手動關閉流,它將在您退出using時被處理掉。

相關問題