WEB开发网
开发学院软件开发C语言 项目常用算法之 一个C#资源池的实现 阅读

项目常用算法之 一个C#资源池的实现

 2009-03-23 08:20:42 来源:WEB开发网   
核心提示:这个资源池用来管理程序的宝贵资源,主要的类是ResourcePool<T>,项目常用算法之 一个C#资源池的实现,用户可以通过调用GetResource方法请求一个资源,用完之后通过ReturnResource归还给资源池,请看代码,欢迎讨论,由资源池决定什么时候释放多余的资源,接口IResourcePro

这个资源池用来管理程序的宝贵资源。

主要的类是ResourcePool<T>。

用户可以通过调用GetResource方法请求一个资源,用完之后通过ReturnResource归还给资源池。由资源池决定什么时候释放多余的资源。

接口IResourceProvider<T>用来获得资源。

类ResourceTag<T>用来标志资源是否在用。

具体的就不多说了,请看代码。欢迎讨论。

先是测试代码:

 1 using System;
 2 using NUnit.Framework;
 3 using System.Data.SqlClient;
 4 public class SqlConnectionProvider: IResourceProvider<SqlConnection>
 5 {
 6    public SqlConnection Request()
 7    {
 8         SqlConnection con= new SqlConnection();
 9         //在此打开数据库连接,因为ResourcePool要求管理那些能用的资源。
10         //con.Open();
11         return con;
12    }
13    public void Dispose(SqlConnection con)
14    {
15         //在此销毁对象
16         con.Dispose();
17    }
18 }
19 [TestFixture]
20 public class Test
21 {
22     [Test]
23     public void TestPool()
24     {
25         //此处初始化资源池,参数:一个资源提供类和一个最大资源池中最大资源数目
26         ResourcePool<SqlConnection> pool=ResourcePool<SqlConnection>.Instance(new  SqlConnectionProvider(),10);
27        
28         long resourceID;
29         SqlConnection con=pool.GetResource(out resourceID);
30         //在此处使用con对象
31        
32         //用完就归还
33         pool.ReturnResource(ref con,resourceID);
34        
35        
36     }
37 }

1 2  下一页

Tags:项目 常用 算法

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接