C#多线程Singleton(单件)模式模板
更新时间:2012年02月24日 11:28:38 作者:
下面是一个C#多线程单件模式的代码模板。把T换成你自己的类型就可以使用了。其精妙之处就在于用lock语句锁定资源来避免多线程同时走入if语句去创建多个对象
复制代码 代码如下:
private static volatile T _instance = null;
private static object objLock = new Object();
private T()
{
}
public static T Instance
{
get
{
if (_instance == null)
{
lock (objLock)
{
if (_instance == null)
{
_instance = new T();
}
}
}
return _instance;
}
}
在必要的时候需如果要刷新当前instance,可以这样写:
复制代码 代码如下:
public static void RefreshInstance()
{
_instance = new T();
}
相关文章
ASP.NET Core读取Request.Body的正确方法
相信大家在使用ASP.NET Core进行开发的时候,肯定会涉及到读取Request.Body的场景,毕竟我们大部分的POST请求都是将数据存放到Http的Body当中,本文就介绍一下ASP.NET Core读取Request.Body,感兴趣的可以了解一下2021-05-05
.NET 6开发TodoList应用之实现ActionFilter
Filter在.NET Web API项目开发中也是很重要的一个概念,它运行在执行MVC响应的Pipeline中执行,允许我们将一些可以在多个Action之间重用的逻辑抽取出来集中管理。本文将详细介绍一下.NET 6如何实现ActionFilter,感兴趣的可以学习一下2021-12-12
asp.net+jquery Gridview的多行拖放, 以及跨控件拖放
学习JQuery时,发现JQuery只能做单行拖放, 于是花时间做了一个多行拖放的例子, 以备以后使用。2009-11-11


最新评论