async Task SyncAllHiveDataAsync(CancellationToken cancel) { IHiveData[] hiveArray; lock (LockObj) { hiveArray = RegisteredHiveData.Values._ToArrayList(); } foreach (var hive in hiveArray) { cancel.ThrowIfCancellationRequested(); HiveSyncFlags flags = HiveSyncFlags.None; if (hive.Policy.Bit(HiveSyncPolicy.AutoReadFromFile)) { flags |= HiveSyncFlags.LoadFromFile; } if (hive.Policy.Bit(HiveSyncPolicy.AutoWriteToFile)) { flags |= HiveSyncFlags.SaveToFile; } if (flags != HiveSyncFlags.None) { // no worry for error await hive.SyncWithStorageAsync(flags, true, cancel); } } }
internal void UnregisterInternal(IHiveData hiveData) { // 最後に Sync を実行する HiveSyncFlags flags = HiveSyncFlags.LoadFromFile; if (hiveData.IsReadOnly == false) { flags |= HiveSyncFlags.SaveToFile; } // エラーを無視 hiveData.SyncWithStorageAsync(flags, true)._GetResult(); lock (LockObj) { RegisteredHiveData.Remove(hiveData.DataName); } }
async Task SyncAllHiveDataAsync(CancellationToken cancel) { IHiveData[] hiveArray; lock (LockObj) { hiveArray = RegisteredHiveData.Values._ToArrayList(); } foreach (var hive in hiveArray) { cancel.ThrowIfCancellationRequested(); HiveSyncFlags flags = HiveSyncFlags.LoadFromFile; if (hive.IsReadOnly == false) { flags |= HiveSyncFlags.SaveToFile; } // no worry for error await hive.SyncWithStorageAsync(flags, true, cancel); } }