Mutex'in kullanımı için genelde aynı uygulamanın aynı bilgisayarda aynı anda birden çok açılmasının engellenmesi örneği verilmektedir. Biz burada birden çok uygulamanın aynı günlük (log) dosyasına satırlar eklemesinin senkronizasyonunu göreceğiz. Diyelim ki şöyle bir kodumuz var ve bunu Mutex kullanarak uygulamalarımız arasında da güvenli kılmak istiyoruz (yani log dosyasını aynı anda birden çok uygulama yazma hakkıyla açmak istediği için sorun yaşıyoruz ve bir şekilde bunları düzene sokmak istiyoruz) :
1 | public static void LogYaz(String s) |
3 | File.AppendAllText( "YPLog.log" , s); |
Bu kodu şu şekilde güvenli hale getirebiliriz:
01 | private static Mutex mtx = new Mutex( false , "YazilimProjesi_LogMutexi" ); |
03 | public static void LogYaz(String s) |
08 | File.AppendAllText( "YPLog.log" , s); |
Lock deyiminde olduğu gibi, bir mutex sadece onu kilitleyen proses tarafından serbest bırakılabilir. Mutex'le ilgili ek bir bilgi daha verelim; ReleaseMutex metodu çağrılmadan uygulama sonlanacak olursa, CLR tarafından ilgili mutex otomatik olarak serbest bırakılır.