如何对一个public的类实例加锁? 好像lock或monitor都不能锁public定义的类型啊,有什么好方法么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private static readonly object Obj = new object; lock(obj) 我调用一个com组件,因为是非托管资源不能重复实例化,所以在最外面实例一个public static com类供程序中各个类调用,但是我发现当有多个线程同时调用com类时总是报错,我在调用的地方加锁又不好使,我该怎么办呢? 你可以用变通的方法,设置一个public static int a=0 的全局变量,或者session中也可以,当有实例调用这个com的时候,就设置a=1,所有调用com的地方,先判断a的值,a=0才调用,a=1,就让他先sleep几秒钟 楼上说的有道理,但是比如有五个线程同时调用这个com组件,有一个执行,其余在等待(我用while(true)不停的判断条件,需要时间快,不能睡太久),当一个执行完后,怎么再让那四个线程分开执行呢?当条件成立时,那四个线程会同时通过验证啊? 正解已出!!看看微软代码吧,也都是这么操作的,为需要加锁的对象定义一个static的object用来枷锁! 楼上说的可以,但我想锁public型com组件,用lock时老出错啊 无语了...老大,不是直接让你锁com组件的实例,而是新建个对象,完全就是为了锁而创建的。。 一个收索功能,新人求助。 C#窗体的鼠标变成"漏斗"状 C#操作数据库的类 ajax 关于一些字符导致404错误,谢谢了 一个很复杂的 字符串 生成 函数的问题..... (很复杂) 请问怎么做子窗体返回主窗体参数 一个关于treeView的小问题!~ DataView 我写控制台程序,总是报错cs5001:找不到程序入口!!请问譔如何解决?? 为什么我的程序在语句using winform出错 C#如何利用form程序中的button1.Text显示图片 关于调用其他程序里的功能问题(要求加精,没人能解决么?)
lock(obj)
你可以用变通的方法,设置一个public static int a=0 的全局变量,或者session中也可以,当有实例调用这个com的时候,就设置a=1,所有调用com的地方,先判断a的值,a=0才调用,a=1,就让他先sleep几秒钟
正解已出!!
看看微软代码吧,也都是这么操作的,为需要加锁的对象定义一个static的object用来枷锁!
无语了...
老大,不是直接让你锁com组件的实例,而是新建个对象,完全就是为了
锁而创建的。。