再问一下一个lock的问题。
 public class TestClass
    {
        public int Column1 { set; get; }
        public int Column2 { set; get; }
          //private object obj = new object();
        object lockindex = 0;
        public void TestMethodA(int i)
        {
            lock (lockindex)
            {
                while (true)
                {
                     Console.WriteLine(Thread.CurrentThread.Name +":"+ lockindex.GetType());
                    Thread.Sleep(10);                }
                //Console.WriteLine(Column1);
            }
        }
        public void TestMethodB()
        {
            Console.WriteLine("B_Start");
            Console.WriteLine("B_End");
        }
    }
这里 obj  与 lockindex 竟然可以达到相同的作用。
之前一直说不能lock值类型的对象。会每次都装箱,但是现在感觉一点问题也没有。
为什么会这样呢?
              
------解决方案--------------------lock (this)
{
    //执行操作
    DoSomething()....
    //比如操作静态变量,缓存等
}
防止并发操作,当前用户操作完,下个用户才能再进行操作
一般lock和一个静态型object变量进行配合
先声明一个 
private static object symObj = new object();
lock(symObj)
{
    //执行操作
    DoSomething()....
    //比如操作静态变量,缓存等
}
要是  int string 什么的 就不行了
------解决方案--------------------lock 通常用于资源共享 同时 又要避免本线程使用资源时 资源被其他线程修改
撸主 怎么用lock玩起了线程同步了  
------解决方案--------------------应该是把  lock  byte[]  也是编译通过的
------解决方案--------------------