public static CRoom GetRoom(string hashRoom) { try { changeLock.WaitOne(); } catch (AbandonedMutexException) { changeLock.ReleaseMutex(); changeLock.WaitOne(); } CRoom answer = null; var rooms = HttpContext.Current.Application["OnlineRooms"]; if (rooms != null) { var onlineRooms = (Dictionary <string, CRoom>)rooms; if (onlineRooms.ContainsKey(hashRoom)) { answer = onlineRooms[hashRoom]; } } changeLock.ReleaseMutex(); return(answer); }
public bool AddRoom(CRoom room) { try { changeLock.WaitOne(); } catch (AbandonedMutexException) { changeLock.ReleaseMutex(); changeLock.WaitOne(); } bool answer = true; var online = HttpContext.Current.Application["OnlineRooms"]; if (online == null) { online = new Dictionary <string, CRoom>(); } var OnlineRooms = (Dictionary <string, CRoom>)online; if (!OnlineRooms.ContainsKey(roomHash)) { OnlineRooms.Add(roomHash, room); HttpContext.Current.Application["OnlineRooms"] = OnlineRooms; } else { answer = false; } changeLock.ReleaseMutex(); return(answer); }