gpt4 book ai didi

multithreading - 有没有办法检测对象是否被锁定?

转载 作者:行者123 更新时间:2023-12-03 06:13:41 25 4
gpt4 key购买 nike

C#中有没有办法判断一个对象是否被锁定?通过设计,我的位置并不令人羡慕,我从类内的队列中读取内容,并且需要将内容转储到类中的集合中。但该集合也可以从类外部的接口(interface)读取/写入。很明显,可能存在一种情况,即正在写入集合,同时我也想写入它。

我可以围绕它进行编程,比如使用委托(delegate),但它会很难看。

最佳答案

您始终可以调用静态 TryEnter methodMonitor class使用值 0 作为要等待的值。如果它被锁定,那么调用将返回 false。

但是,这里的问题是您需要确保您尝试同步访问的列表已被锁定,以便同步访问。

使用正在同步访问的对象作为要锁定的对象通常是不好的做法(暴露了对象的太多内部细节)。

请记住,锁定可能位于其他任何内容上,因此仅在该列表上调用它是没有意义的,除非您确定该列表就是被锁定的内容。

关于multithreading - 有没有办法检测对象是否被锁定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1300199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com