示例#1
0
        public void FromTask_ReturnsTokenWithoutCancellationRequested()
        {
            var tcs = new TaskCompletionSource();

            var result = CancellationTokenHelpers.FromTask(tcs.Task);

            Assert.IsTrue(result.Token.CanBeCanceled);
            Assert.IsFalse(result.Token.IsCancellationRequested);
        }
示例#2
0
        public void FromTaskSynchronously_TaskCompletes_TokenGetsCancellationRequested()
        {
            var tcs    = new TaskCompletionSource();
            var result = CancellationTokenHelpers.FromTask(tcs.Task, TaskContinuationOptions.ExecuteSynchronously);

            tcs.SetResult();

            Assert.IsTrue(result.Token.CanBeCanceled);
            Assert.IsTrue(result.Token.IsCancellationRequested);
        }
示例#3
0
 /// <summary>
 /// [Caution] As per the AsyncEx notes, this is a hack, and neither thread-safe nor truly immediate.
 /// </summary>
 public static bool IsSet(this AsyncManualResetEvent source)
 {
     try
     {
         source.Wait(CancellationTokenHelpers.FromTask(Task.Delay(5)).Token);
         return(true);
     }
     catch (System.OperationCanceledException)
     {
         return(false);
     }
 }