C# lock语句

lock关键字将语句块标记为临界区,确保当一个线程位于代码的临界区时,另一个线程不会进入该临界区。如果其他线程尝试进入锁定的代码,则它将一直等待,直到该对象被释放。

一般而言,避免锁定public型或无法控制的执行个体。有三种常见的违反这个方针的代码: 

lock(this)在可公开存取执行个体的情况下,会出现问题 

lock(typeof(MyType))在可公开存取MyType的情况下,会出现问题 

lock("myLock")会出现问题 

最佳的用法是定义要锁定的private或private static对象保护所有执行个体通用的资料。 

例如: 

private static object objLock=new object(); 

lock(objLock) 

//代码块 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值