KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Consider the following function that implements non-blocking access to only the one thread. public bool TryCancelGroup() { if (Monitor.TryEnter(_locked)) { if (_locked == false) { _locked = true; try { // do something } catch (Exception ex) { _locked = false; } finally { Monitor.Exit(_locked); } } return _locked; } else { return false; } } And here is how _locked variable is defined. bool _locked = false; Now when program reaches Monitor.Exit(_locked); it throws an System.Threading.SynchronizationLockException saying that _locked variable was not synchronized before. It all was working before when _locked variable was defined as object object _locked = new object(); When I changed it to bool in order to use it as boolean flag I started getting this exception.
Tags (comma-separated)
Save Edits
Cancel