Ejemplo n.º 1
0
        private void SaveConfigToFile()
        {
            // 未处于Idle状态 丢弃一个时间片
            InterlockedHelper.InterlockWait(ref flag, Writing, Idle);

            BinaryStreamHelper.SaveToFile(configFilePath, timeConfigMap, EndSaveConfig);
        }
Ejemplo n.º 2
0
        /// <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);
        }