我正在尝试在关键部分同步线程,但我需要根据值来完成。 例如,如果您的线程正在代表不同的人(即bob,fred,bill),那么Bob和Bill的线程可以是并发的,但Bob的所有线程都会被同步,因此只有1个线程可以通过关键部分时间。我最初的想法是使用命名的互斥锁,但不知道如何管理它们。也许某种类型的名为互斥体的字典。有没有人做过类似的事情?
答案 0 :(得分:4)
通常情况下,在这种情况下,每个用户都会有一个User
个实例。
如果是这样,您可以在该用户实例上lock()
。
答案 1 :(得分:1)
Person
课程(Bob,Bill等),您可以在该实例上lock
。Person
的班级,请创建一个Dictionary
,将您的人员的唯一标识符映射到已命名的Mutex
个对象的实例。应该同步对字典本身的访问。另请注意,.NET中的互斥锁创建并非易事。有关详细信息,请参阅this answer。