/// <summary> /// /// </summary> /// <returns></returns> private async Task ReadAsync() { _stream.Seek(0, SeekOrigin.Begin); var @lock = await JsonSerializer.DeserializeAsync <ApplicationLockList>(_stream, _options); Applications = @lock.GetBuffer(); }
/// <summary> /// /// </summary> /// <param name="baseDirectory"></param> internal Locker(DirectoryInfo baseDirectory) { var file = new FileInfo(Path.Combine(baseDirectory.FullName, FILE_NAME)); _stream = file.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.Read); if (_stream.Length != 0) { ReadAsync().Wait(); } else { Applications = new ApplicationLockListBuffer(); } }