GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — ModuleManager/ModuleManager/Threading/TaskStatus.cs at master · sarbian/ModuleManager Expand file tree/ Copy pathTaskStatus.csMore file actions 53 lines (47 loc) · 1.31 KB / Copy pathTaskStatus.csFile metadata and controls53 lines (47 loc) · 1.31 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 using System; namespace ModuleManager.Threading { public class TaskStatus : ITaskStatus { private readonly object lockObject = new object(); public bool IsRunning { get; private set; } = true; public Exception Exception { get; private set; } = null; public bool IsFinished { get { lock (lockObject) { return !IsRunning && Exception == null; } } } public bool IsExitedWithError { get { lock (lockObject) { return !IsRunning && Exception != null; } } } public void Finished() { lock (lockObject) { if (!IsRunning) throw new InvalidOperationException("Task is not running"); IsRunning = false; } } public void Error(Exception exception) { lock(lockObject) { if (!IsRunning) throw new InvalidOperationException("Task is not running"); this.Exception = exception ?? throw new ArgumentNullException(nameof(exception)); IsRunning = false; } } } } |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |