12345678910111213141516171819202122 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- namespace Ips.Library.Basic
- {
- public static class CancellationTokenExtensions
- {
- public static CancellationToken LinkTimeout(this CancellationToken token, int timeout)
- {
- if (timeout <= 0) return token;
- var cts = new CancellationTokenSource();
- cts.CancelAfter(timeout * 1000);
- var timeoutToken = cts.Token;
- var linkedCts = CancellationTokenSource.CreateLinkedTokenSource(timeoutToken, token);
- return linkedCts.Token;
- }
- }
- }
|