static object zobject= new object();
        void TaskEvent1()
        {
            lock (zobject)
            {
                
            }
        }
        void TaskEvent2()
        {
            lock (zobject)            
            {            }
        }
这样的话TaskEvent1和TaskEvent2会同步吗?也就是说这两个方法会不会同时执行?多线程的情况下.

解决方案 »

  1.   

    完成一个实例,你就知道了。他们同步。void TaskEvent1()
    {
        lock (zobject)
        {
            int i = 1;
            while(i <= 100)
               Console.WrilteLine("{0}:{1}", Thread.CurrentThread.Name, i++);
        }
    }void TaskEvent2()
    {
        lock (zobject)            
        {
            int i = 1;
            while(i <= 100)
               Console.WrilteLine("{0}:{1}", Thread.CurrentThread.Name, i++);
        }
    }Thread thread1 = new Thread(TaskEvent1);
    thread1.Name = "thread1";
    Thread thread2 = new Thread(TaskEvent2);
    thread1.Name = "thread2";
    thread1.Start();
    thread2.Start();