问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c# lock锁释放不及时怎么解决

发布网友 发布时间:2022-04-15 02:11

我来回答

1个回答

热心网友 时间:2022-04-15 03:40

lock: 该关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。

 

举例:

    单件模式

public class Singleton
{
private static Singleton instance = null;
private static readonly object syncRoot = new object();

private Singleton()
{
}

public static Singleton GetInstance()
{
if (instance == null)
{
lock (syncRoot)
{
if (instance == null)
{
instance = new Singleton();
}
}
}
return instance;
}
}

 

说明:

     单间模式中就用到了lock,是一次只能有一个实例。此例中syncRoot若为null则会抛出ArgumentNullException异常,

     所以总结如下:

     1. lock的对象不能为null;

     2. lock时如果有别的进程访问lock变量或lock{}里的内容,则不是跳过,而是等待,等待lock结束后再访问;

     3. msdn里的一句话: 

         lock 确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入锁定的代码,则它将一直等待(即被

         阻 止),直到该对象被释放;

     4. lock(this)请不要使用,this指的是整个外层方法,当锁住后导致别的进程也无法访问该方法,应lock一个不影响其他操作的私有对  

         象, 如static 的object 对象

         例如单件模式中的syncRoot ;

     5. 在使用lock的时候,被lock的对象(locker)一定要是引用类型的,如果是值类型,将导致每次lock的时候都会将该对象装箱

       为 一个新的引用对象(事实上如果使用值类型,C#编译器(3.5.30729.1)在编译时就会给出一个错误)。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
人字梯有什么安全隐患吗 怎样激发青春期孩子的内驱力 如何激发青春期孩子的内驱力 ...小题1:移船相近邀相见,添酒回灯重开宴。 , &n... L1和L2串联 电压表并联在L1两端 当L1断路后 电压表测的为什么就成了电源... L1和L2串联,用电压表测L1两端的电压,L2不亮时,电流表为什么测的是电源电... 电路上传连两个灯泡L1与L2电压表测L1电压,当L1短路与断路时电压表情况... 对方拖着不办离婚手续该怎么办 计算机一级电子表格怎么拿分 如何配置思源黑体为latex中文字体? 思源黑体字体怎么安装 如何给CAD平面图形加颜色? 商场的业态平面图怎么上色填色? 简述word2010中表格第3行精确调整的方法 Revit 平面图常规模型怎么换颜色 如何把平面图中的桩号文字整体填充底色 梦见地里有座房,房子里有个女人 梦见房间里一个女孩而且没人来找 投智圈创建项目时出现超过系统数量限制是什么原因? 手机上录屏功能找不到,找了挺久的? 深i您登记后如何查询来深圳的时间记录? 录屏功能消失了 为什么我的手机录屏功能消失了? 我的录屏功能不见了?编辑里也没有, 户口自主申报地址怎么填也不对? 关于学会拒绝作文250字 求一篇以“拒绝”为话题的作文 我要写一篇以“学会拒绝”为话题的作文初中的 以“拒绝”为话题的作文 以决绝为话题的作文800字 以"学会拒绝"为题,写一篇800字作文 核辐射探测器的分类 核辐射探测器的介绍 核辐射探测器的发展趋势 自制核辐射检测器 如何选择高纯锗探测器 如何自制核辐射探测仪 核辐射探测器发展 对用作核辐射探测器的闪烁体有哪些要求 核辐射探测仪英文是什么 手机触摸屏 手机触摸屏自动测试 用不了怎么办 手机屏幕上出现了文件夹怎么也删不掉 手机屏幕上的软件怎么删除不了?这是什么情况?解答采纳 手机屏幕上不能确认和删除是怎么了 热水器是按照什么来计算用电量的 手机主屏幕出现信息删除不了怎么办 手机屏幕上有些菜单删不掉怎么办我下载的返利应用不了想删除,怎么删 新旧热水器用电量比较 额定功率为2000瓦的史密斯电热水器一天的用电量是多少度?谢谢!_百度... 手机没装卡怎么登陆? 手机没装卡怎么登陆?