多线程调用并测试lock是否有效的有关问题

多线程调用并测试lock是否有效的问题

protected void Page_Load(object sender, EventArgs e)
        {
  new System.Threading.Thread(new ParameterizedThreadStart(c)).Start("1");
            new System.Threading.Thread(new ParameterizedThreadStart(c)).Start("2");
            new System.Threading.Thread(new ParameterizedThreadStart(c)).Start("3");
            new System.Threading.Thread(new ParameterizedThreadStart(c)).Start("4");
            new System.Threading.Thread(new ParameterizedThreadStart(c)).Start("5");
            new System.Threading.Thread(new ParameterizedThreadStart(c)).Start("6");
            new System.Threading.Thread(new ParameterizedThreadStart(c)).Start("7");
            new System.Threading.Thread(new ParameterizedThreadStart(c)).Start("8");
            new System.Threading.Thread(new ParameterizedThreadStart(c)).Start("9");
            new System.Threading.Thread(new ParameterizedThreadStart(c)).Start("10");          
            Response.Write("</br>========================== end<hr/>");
        }

        private  void c(object num)
        {
             System.Object lockThis = new System.Object();
             lock (lockThis)
             {
                 Response.Write("</br>thread " + num + " begin");
                 Response.Write("</br>thread " + num + " end<hr/>");
             }
        }


正在整合一个支付接口,有时对方会同时间发了两个异步通知过来,造成记录重复更新,对方说加个锁操作看看
所以写了上面的方法进行测试lock是否有效

1、上面的测试方法是否有效,c方法中有加lock和没加,在单个机子上不断刷新时,返回结果begin和end总是显示在一起的,并没有出现插队的现象,是因为同时刷新的人数不足?
2、在线支付返回页面中可以用这种方法加锁,防止出现多次更新的情况吗?
------解决思路----------------------
lockThis应该定义成static型,或者用全局变量,否则每个线程函数都实例化一个,锁定的是不同的对象