Вы сказали, что несколько экземпляров одного приложения, так что мы говорим о двух программах program.exe, верно? Оператор блокировки не будет блокировать несколько программ, только внутри программы. Если вы хотите настоящий Mutex, посмотрите на объект System.Threading.Mutex .
Вот пример использования:
bool createdNew;
using (Mutex mtx = new Mutex(false, "MyAwesomeMutex", out createdNew))
{
try
{
mtx.WaitOne();
MessageBox.Show("Click OK to release the mutex.");
}
finally
{
mtx.ReleaseMutex();
}
}
Переменная созданная новая позволит вам узнать, была ли она создана в первый раз. Это только говорит вам, если он был создан, хотя. Если вы хотите получить блокировку, вам нужно вызвать WaitOne, а затем вызвать ReleaseMutex, чтобы снять ее. Если вы просто хотите увидеть, создали ли вы Mutex, просто создайте его.