Tôi đang làm việc trên 2 Dịch vụ Windows có cơ sở dữ liệu chung mà tôi muốn khóa (cross-process) với hệ thống Mutex.Tôi có nên vứt bỏ Mutex không?
Bây giờ tôi đang tự hỏi liệu nó ok để chỉ cần gọi WaitOne()
và ReleaseMutex()
trong một khối try-finally
hay nên tôi cũng vứt bỏ Mutex (ví dụ trong một khối using
). Nếu vậy tôi đoán tôi nên luôn luôn bắt các AbandonedMutexException
trên phương pháp WaitOne()
hoặc tôi sai ở đây?
Bạn cần AbandonedMutexException để cho bạn biết rằng dịch vụ sở hữu mutex đã đột ngột chấm dứt. Trong trường hợp đó bạn * có * ngừng sử dụng dbase và chờ cho dịch vụ khác bắt đầu lại.Sử dụng quy trình thứ 3 để hoạt động như trọng tài sẽ là khôn ngoan. –