using System.Linq; using System.Threading; namespace ScreenConnect; public class ChildRunContext(TParentRunContext parentRunContext, params CancellationToken[] auxiliaryCancellationTokens) : RunContext(auxiliaryCancellationTokens.Append(parentRunContext.GetCancellationToken()).ToArray()), IConvertible where TParentRunContext : RunContext { public TParentRunContext Parent => parentRunContext; TParentRunContext IConvertible.Convert() { return Parent; } public static implicit operator TParentRunContext(ChildRunContext @this) { return @this.Parent; } }