public async Task Run(CancellationToken cancellationToken) { var builder = new GenericNpmRunner(_Directory, _Script); builder.OnMessageReceived += Builder_OnMessageReceived; _CancellationTokenSource?.Cancel(); _CancellationTokenSource = new CancellationTokenSource(); var linkedToken = CancellationTokenSource.CreateLinkedTokenSource(_CancellationTokenSource.Token, cancellationToken); try { await builder.Run(linkedToken.Token).ConfigureAwait(false); } finally { builder.OnMessageReceived -= Builder_OnMessageReceived; builder.Dispose(); } }
public NpmLiveRunner(string directory, string script) { _GenericNpmRunner = new GenericNpmRunner(directory, script); _GenericNpmRunner.OnMessageReceived += GenericNpmRunnerOnMessageReceived; }