2014-03-27 67 views
1

爲了記錄目的,服務器上的某個文件將被多次寫入。該文件將被幾百個用戶訪問,可能同時訪問。如何管理VB.net中的併發性,以便文件沒有損壞?在寫入VB.net中的文件時如何處理併發?

+0

很不清楚爲什麼一個簡單的SyncLock不適合。 –

+0

在使用SyncLock時,如何在每次用戶執行操作時管理新線程的創建,以便將請求發送到服務器進行日誌記錄?由於數百名用戶可能實際上同時登錄,因此該方法是否優化? – surya

回答

0

直接從客戶端做到這一點非常困難。

但是,如果引入一層間接尋址,它應該可以解決。

例如,您可能有一個基於服務器的組件(例如Web服務甚至Windows服務),並且您的所有客戶端都將其消息發送給它。它和它本身負責記錄到文件。它需要管理一種或另一種形式的隊列。

人們用來處理這種情況的一種常見的基於服務器的組件是(drumroll)一個數據庫。您可以使用數據庫作爲日誌記錄的端點,然後對發生鎖定的方式進行細化控制。