2013-02-14 88 views
0

我有一個文件服務器連接池。 (以緩存連接的文件服務器) 現在,如果池中有100個打開的連接,我想稍後清理一下。池:清理池

我會在15分鐘後進行清理。 (例如,在15分鐘不活動後關閉20%的活動連接)

爲此,我需要記住最後一次輸入請求的時間戳。 (作爲一個靜態變量)

static DateTime s_lastUse; 

//... 
UseFileServer() 
{ 
s_lastUse = DateTime.Now; 
} 
//... 
CreateNewConnection() 
{ 
if((DateTime.Now - s_lastUse) > TimeSpan.FromSeconds(900)) 
{ 
//do cleanup.... 
} 
} 

這是可能的多線程體系結構? 也許,如果兩次寫操作發生在同一時間,則變量中的值已損壞。

.net是否確保這個寫入操作是原子的?

s_lastUse = DateTime.Now; 

回答