Ejemplo n.º 1
0
        /// <summary>
        /// キャンセル伝搬しつつ、タイムアウト時にキャンセルするctsを作る。
        /// </summary>
        public static CancellationTokenSource CancelAfter(this CancellationToken ct, TimeSpan timeout)
        {
            var cts = ct.ToCancellationTokenSourceOneWay();

            DelayTimer(timeout, () => cts.Cancel(new TimeoutException()));
            return(cts);
        }
Ejemplo n.º 2
0
        public static Task <T> First <T>(CancellationToken ct, params Task <T>[] tasks)
        {
            var cts = ct.ToCancellationTokenSourceOneWay();

            return(First(cts, tasks));
        }