AngleSharp by AngleSharp

<PackageReference Include="AngleSharp" Version="0.9.4" />

 Download

sealed class Download : IDownload
using AngleSharp.Dom; using System.Threading; using System.Threading.Tasks; namespace AngleSharp.Network { internal sealed class Download : IDownload { private readonly CancellationTokenSource _cts; private readonly Task<IResponse> _task; private readonly Url _target; private readonly INode _originator; public INode Originator => _originator; public Url Target => _target; public Task<IResponse> Task => _task; public bool IsRunning => _task.Status == TaskStatus.Running; public bool IsCompleted { get { if (_task.Status != TaskStatus.Faulted && _task.Status != TaskStatus.RanToCompletion) return _task.Status == TaskStatus.Canceled; return true; } } public Download(Task<IResponse> task, CancellationTokenSource cts, Url target, INode originator) { _task = task; _cts = cts; _target = target; _originator = originator; } public void Cancel() { _cts.Cancel(); } } }