您的位置:首页 > 编程语言 > C#

C#中Lock静态字段和实例字段

2017-03-23 15:05 106 查看
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Test
{
class Program
{
static void Main(string[] args)
{
var ins= new TestClass();
for (int i = 0; i < 100; i++)
{
Task.Factory.StartNew(() =>
{

ins.test();

});

}

Console.ReadLine();
}

}

public class TestClass {
public   static int num = 0;
static object lockObjStatic = new object();
object lockObj = new object();
public  void test()
{
object lockObjtemp = new object();

//lockObjtemp  无论是否同一个对象,锁都不起作用
//lockObj  同一个对象下锁起作用,不通的对象下锁不起作用
//lockObjStatic 不管同一个对象还是非同一个对象锁都起作用
lock (lockObjStatic) //正常用锁的时候,一定要锁定私有静态字段
{
add();
}
}

public  void add()
{
num++;
Console.WriteLine(TestClass.num);

}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐