为什么要使用 Mutex 来锁定?

Why use a Mutex to lock on?

为什么有人会使用新的互斥锁来进行锁定?

public class Job
{
    private static Mutex mutex = new Mutex();

    public void Execute(Context context)
    {
        lock (mutex)
        {
            // some work here
        }

        // some more work here
    }
}

如果这真的是Mutex所说的唯一用途,那确实没有意义。正常的 object 就足够了。

Why would someone use a new mutex just for locking?

可能是因为有人在教程中说了 "Mutex",他们从字面上想到了 Mutex 对象。将它用作 lock 没有任何好处或任何特殊效果。任何引用类型都有一个对象头字,使其有资格用作 lock 对象。

旁注 - 使用 static 对象锁定将导致您的 Job class 的任何实例在另一个实例持有该锁时被阻止。