ConcurrentDictionary线程安全集合使用例子() =>统一返回值
ConcurrentDictionary是线程安全集合。下面我来写一个小例子
[C#] 纯文本查看 复制代码 using System;
using System.Collections;
using System.Data;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Collections.Concurrent;
using System.Text;
using System.Web.Configuration;
namespace acp
{
delegate string Fun();
public class Service : IHttpHandler
{
//线程安全集合
static ConcurrentDictionary<string, Func<string>> mianlist = new ConcurrentDictionary<string, Func<string>>();
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string action = context.Request["action"];
string result = string.Empty;
if (string.IsNullOrEmpty(action))
{
result = "-1";//没有对应方法
}
else
{
result = mianlist[action]();
}
context.Response.Write(result);
}
//构造器
static Service()
{
//方法1
mianlist.TryAdd("exists", () =>
{
return string.Empty;
});
//方法2
mianlist.TryAdd("deleteUser", () =>
{
return string.Empty;
});
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
这个例子主要是根据Action进行选择要执行的方法的,而这些方法都有统一的返回值String类型,相信这种情况大家都会用到,这是代替了Case和IF语句的一种方式
使用了静态化之后性能更优秀。
|