2013-02-14 64 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; 

回答