德州哪里有做网站推广的,电子商务公司的名字,南京触屏网站开发,公司简介制作1.Application.Lock和Application.UnLock一般配对出现#xff0c;用于锁住Lock与UnLock之间的所有代码#xff08;注意不光锁住对于Application的赋值#xff09;。 2.Lock(obj) 于用锁住obj对象#xff0c;obj对象必须是全局对象#xff08;如#xff1a;Application用于锁住Lock与UnLock之间的所有代码注意不光锁住对于Application的赋值。 2.Lock(obj) 于用锁住obj对象obj对象必须是全局对象如Application。 Application.Lock/UnLock的使用方法 Application.Lock();//其他代码Application[value] 1;//其他代码Application.UnLock(); Lock(obj)的使用方法: Lock(Application){//其他代码Application[value] 1;//其他代码} 以上两段代码的功能是一样的都是锁住代码段让代码段内的代码不会被多线程同时执行。 它们两者之间也存在区别来看一下它们的区别 网站内任何一个网页执行Application.Lock的时候整站中所有关于Application的操作都会被锁定延时执行。(包括Application赋值和Application读取)而Lock(obj)则不会影响其他没有写Lock(obj)的页面。 例子 先来看看Application.Lock的用法 A页面 Application.Lock();Application[value] 1;System.Threading.Thread.Sleep(10000);Application.UnLock(); B页面 object value Applcation[value]; 我们先执行A页面再执行B页面。由于Application在A页面中被锁定所以B页面中需要获取Application中的值则需要等待A页面中执行完毕才行。 我们再来看一下Lock(obj)的用法 A页面 lock(Application){Application[value] 1;System.Threading.Thread.Sleep(10000);} B页面 object value Applcation[value];Applcation[value] 2; 我们同样先执行A页面再执行B页面。你会发现A页面中Application虽然被锁定但是由于在B页面并没有相应Lock代码读取和修改都是成功的。 如果需要把B页面锁住则需要把B页面的代码修改成 lock(Application)//B页面里也要加入Lock{object value Applcation[value];Applcation[value] 2;} 另外Application和Lock(Application)虽然都可以锁定Application但不能互相锁定即在A页面中用Application.Lock/UnLock在B页面中用Lock(Application)这样B页面是锁定不了的当然如果B页面中本身就包含了对Application的读取和赋值那么B页面也会被锁原因是上面已经提到了。 由此可见Application.Lock/UnLock比较安全因为它是全局锁定所有的Application的而Lock(obj)则更灵活因为另一页面中如果没有写Lock(obj)则可以修改其他页面Lock住的内容所以写代码需要我们更认真。倒底是用哪个比较好就看各位自己的实际需求了。 转载于:https://www.cnblogs.com/lxboy2009/p/5579656.html