public static class PublicValue
{
private static Hashtable _htSystem = new Hashtable();
private static object _Root = new object(); public static object Get(string key)
{
if (string.IsNullOrEmpty(key))
return null;
object result = null;
lock (_Root)
{
if (_htSystem != null)
result = _htSystem[key];
}
return result;
} public static void Set(string key, object value)
{
if (string.IsNullOrEmpty(key) || value == null)
return;
lock (_Root)
{
_htSystem[key] = value;
}
}
}
解决方案 »
- 如果编 码内存流
- 如何使用Datatable更新DataGridView已经存在的列?谢谢
- 新手请教各位大侠关于visual studio 的安装问题
- C# 比较字符串 两个不同的字符串 不同的部分取出来
- C# 连接 Oracle 11g
- 重新提问,一个小时后结贴,顶的有分
- C#.NET aspx页里的连接都是.html的,右键aspx页在浏览器中查看可以显示,但是半分钟后就报错了,提示找不到页!什么原因啊?
- Help me!
- SOAP安装的问题,专家进来吧!
- 谁帮我看看VBA中的一个贴,那边好象没人。
- 菜鸟请教大虾,梅花雨的问题。
- C#窗口大小变化能否知道变化原因(双击标题栏或者鼠标移动各个边框)
{
private static Hashtable _htSystem = new Hashtable();
private static object _Root = new object(); public static object Get(string key)
{
if (string.IsNullOrEmpty(key))
return null;
object result = null;
lock (_Root)
{
if (_htSystem != null)
result = _htSystem[key];
}
return result;
} public static void Set(string key, object value)
{
if (string.IsNullOrEmpty(key) || value == null)
return;
lock (_Root)
{
_htSystem[key] = value;
}
}
}
OK
{
//
}obj即为信号量,当被锁住时,其它线程不能进入,只有它完成任务后释放后其它的线程才能进入,这就是说的线程安全。
lock(this)
{
//调用私有函数
}但是我发现这个私有函数还是被多个线程同时访问?为什么呢?我应该如何做呢?
{
//
}
如上面的调面模式中,这个obj,即信号量我在哪定义呀?在主调数中?好像不行呀
{
....dosomething
}
lock(hashtable)
{
}lock(hashtable1)
{
}lock(hashtable2)
{
}
..
这样加了锁,可没用.