Beispiel #1
0
        public async Task SaveAsync()
        {
            var args = new SavedEventArgs();
            var sw   = Stopwatch.StartNew();

            try {
                byte[] bytes;
                lock (SyncRoot) {
                    bytes = _serializer.Serialize(_items);
                }
                args.TimeToSerialize = sw.Elapsed;
                args.SizeInBytes     = bytes.Length;
                sw.Restart();
                await _dataStore.WriteAllAsync(bytes);
            }
            catch (Exception ex) {
                args.Exception = ex;
                throw;
            }
            finally {
                args.TimeToSave = sw.Elapsed;
                OnSaved(args);
            }
        }
Beispiel #2
0
 protected virtual void OnSaved(SavedEventArgs args)
 {
     Saved?.Invoke(this, args);
 }