C# lock语句
lock关键字将语句块标记为临界区,确保当一个线程位于代码的临界区时,另一个线程不会进入该临界区。如果其他线程尝试进入锁定的代码,则它将一直等待,直到该对象被释放。
一般而言,避免锁定public型或无法控制的执行个体。有三种常见的违反这个方针的代码:
lock(this)在可公开存取执行个体的情况下,会出现问题
lock(typeof(MyType))在可公开存取MyType的情况下,会出现问题
lock("myLock")会出现问题
最佳的用法是定义要锁定的private或private static对象保护所有执行个体通用的资料。
例如:
private static object objLock=new object();
lock(objLock)
{
//代码块
}
作者:sy
出处:http://www.cnblogs.com/sydeveloper
QQ:522733724
本页版权归作者和博客园所有,欢迎转载,但未经作者同意必须保留此段声明,
且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利