private void WriteToSharedMemory() { try { if (m_SharedMemory == null) { m_SharedMemory = new Ipc.SharedMemory("AresSettingsMemory" + m_ID, Data); } else { m_SharedMemory.Lock(); try { m_SharedMemory.AddObject(Data, true); } finally { m_SharedMemory.Unlock(); } } m_OwnWaitHandle.Set(); } catch (Ares.Ipc.SharedMemoryException) { } }
private bool ReadFromSharedMemory() { try { String id = "AresSettingsMemory" + (m_ID == PlayerID ? EditorID : PlayerID); using (Ares.Ipc.SharedMemory mem = new Ipc.SharedMemory(id)) { SettingsData s = null; mem.Lock(); try { s = (SettingsData)mem.GetObject(); } finally { mem.Unlock(); } bool fundamentalChange = CompareForFundamentalChange(s); lock (syncObject) { Data = s; } if (SettingsChanged != null) { SettingsChanged(this, new SettingsEventArgs(fundamentalChange)); } return(true); } } catch (Ipc.SharedMemoryException) { return(false); } }