社区
C#
帖子详情
如何对一个public的类实例加锁?
ldxab
2010-01-29 09:12:04
好像lock或monitor都不能锁public定义的类型啊,有什么好方法么?
...全文
168
10
打赏
收藏
如何对一个public的类实例加锁?
好像lock或monitor都不能锁public定义的类型啊,有什么好方法么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
seesea125
2010-01-30
打赏
举报
回复
[Quote=引用 2 楼 ldxab 的回复:]
我调用一个com组件,因为是非托管资源不能重复实例化,所以在最外面实例一个public static com类供程序中各个类调用,但是我发现当有多个线程同时调用com类时总是报错,我在调用的地方加锁又不好使,我该怎么办呢?
[/Quote]
你可以用变通的方法,设置一个public static int a=0 的全局变量,或者session中也可以,当有实例调用这个com的时候,就设置a=1,所有调用com的地方,先判断a的值,a=0才调用,a=1,就让他先sleep几秒钟
ouc_ajax
2010-01-30
打赏
举报
回复
[Quote=引用 9 楼 ldxab 的回复:]
楼上说的可以,但我想锁public型com组件,用lock时老出错啊
[/Quote]
无语了...
老大,不是直接让你锁com组件的实例,而是新建个对象,完全就是为了
锁而创建的。。
ldxab
2010-01-30
打赏
举报
回复
我调用一个com组件,因为是非托管资源不能重复实例化,所以在最外面实例一个public static com类供程序中各个类调用,但是我发现当有多个线程同时调用com类时总是报错,我在调用的地方加锁又不好使,我该怎么办呢?
ldxab
2010-01-30
打赏
举报
回复
楼上说的可以,但我想锁public型com组件,用lock时老出错啊
wzp144650
2010-01-30
打赏
举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]
private static readonly object Obj = new object;
lock(obj)
[/Quote]
这样肯定可以
ouc_ajax
2010-01-30
打赏
举报
回复
[Quote=引用 6 楼 flyerwing 的回复:]
引用 1 楼 wuyq11 的回复:
private static readonly object Obj = new object;
lock(obj)
这样不行?
[/Quote]
正解已出!!
看看微软代码吧,也都是这么操作的,为需要加锁的对象定义一个static的object用来枷锁!
flyerwing
2010-01-30
打赏
举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]
private static readonly object Obj = new object;
lock(obj)
[/Quote]
这样不行?
vrhero
2010-01-30
打赏
举报
回复
用委托,自己构造一个队列排队...调用线程执行完毕通知下一个排队线程...
ldxab
2010-01-30
打赏
举报
回复
楼上说的有道理,但是比如有五个线程同时调用这个com组件,有一个执行,其余在等待(我用while(true)不停的判断条件,需要时间快,不能睡太久),当一个执行完后,怎么再让那四个线程分开执行呢?当条件成立时,那四个线程会同时通过验证啊?
wuyq11
2010-01-29
打赏
举报
回复
private static readonly object Obj = new object;
lock(obj)
Java同步集合synchronizedX中的迭代器Iterator使用,为什么需要使用者
加
锁
?
Java同步集合synchronizedX中的迭代器Iterator使用,为什么需要使用者
加
锁
?
Java
锁
、线程执行顺序
锁
是什么 ? 怎么
加
锁
?...线程是一个单独的资源类 多线程则是,多个线程 争抢同一共享资源 在资源竞争中,就会存在线程安全的问题,这是什么就需要
加
锁
控制
加
锁
线程排队-》基本表现 同步前-》..
互联网大厂电商业务,扣库存操作究竟该如何
加
锁
?
购物车添
加
商品的逻辑,随机添
加
三种商品,假设一个购物车中的商品是item1和item2,另一个购物车中的商品是item2和item1,一个线程先获取到了item1的
锁
,同时另一个线程获取到了item2的
锁
,然后两个线程接下来要分别...
Java中对对象
加
锁
的方法和对类
加
锁
的方法会不会互相阻塞?
今天面试遇到这么一个问题:对对象
加
锁
的方法和对类
加
锁
的方法会不会互相阻塞? 然后我参照了网上的一些博客内容,写了以下程序验证: 他们的结果是交错输出的,也就是说他们是不阻塞的。 那么为什么会成为这样子呢...
单例模式(懒汉模式-双检
锁
、饿汉模式、静态内部类模式)-详细
03 单例模式的三种模式03::01 懒汉模式03::01::01 问:为什么不在方法上
加
锁
,而是在方法内部
加
锁
?03::01::02 问:单例类对象前面为什么要
加
volatile 关键字03::02 饿汉模式03::03 静态内部类模式03::04 总结 前言 ...
C#
110,571
社区成员
642,565
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章