private void SaveConfigToFile() { // 未处于Idle状态 丢弃一个时间片 InterlockedHelper.InterlockWait(ref flag, Writing, Idle); BinaryStreamHelper.SaveToFile(configFilePath, timeConfigMap, EndSaveConfig); }
/// <summary> /// 加载配置文件 反序列化 /// </summary> private void Load() { if (!File.Exists(configFilePath)) { return; } InterlockedHelper.InterlockWait(ref flag, Reading, Idle); using (MemoryStream ms = BinaryStreamHelper.Load(configFilePath, FileMode.Open)) { BinaryFormatter bf = new BinaryFormatter(); try { timeConfigMap = bf.Deserialize(ms) as Dictionary <string, TimeConfig>; } catch { // 反序列化出现异常 删除配置文件 File.Delete(configFilePath); timeConfigMap = null; } } Interlocked.CompareExchange(ref flag, Idle, Reading); }