Sto lavorando su 2 Servizi Windows che hanno un database comune che voglio bloccare (cross-process) con un sistema Mutex.Devo smaltire un Mutex?
Ora mi chiedo se è giusto da chiamare solo WaitOne()
e ReleaseMutex()
in un blocco try-finally
o devo anche disporre il Mutex (ad esempio in un blocco using
). Se è così suppongo che dovrei sempre prendere lo AbandonedMutexException
sul metodo WaitOne()
o sbaglio qui?
È necessario l'AbandonedMutexException per dirti che il servizio che possiede il mutex è terminato in modo imprevisto. In tal caso, * deve * smettere di usare dbase e attendere che l'altro servizio si avvii di nuovo.Usare un terzo processo per agire come arbitro sarebbe saggio. –