Example #1
0
 /// <summary>
 /// Accept this stream
 /// </summary>
 /// <param name="ct"></param>
 /// <returns></returns>
 public Task <IMessageStream> OpenAsync(CancellationToken ct)
 {
     ct.Register(() => {
         Tcs.TrySetCanceled();
     });
     return(Tcs.Task);
 }
Example #2
0
 private void Cancel()
 {
     IsBusy = false;
     if (Tcs != null)
     {
         Tcs.TrySetCanceled();
         Tcs = null;
     }
 }
Example #3
0
            public async Task <object> GetTask(CancellationToken cancellationToken)
            {
                try
                {
                    if (cancellationToken == default)
                    {
                        return(await Tcs.Task);
                    }

                    await using (cancellationToken.Register(() => Tcs.TrySetCanceled()))
                    {
                        return(await Tcs.Task);
                    }
                }
                catch
                {
                    _onTimeout?.Invoke();
                    throw new TimeoutException("Request didn't receive any Response within the expected time.");
                }
            }
Example #4
0
            private void CancelTcs(object state)
            {
                CancellationToken ct = (CancellationToken)state;

                Tcs?.TrySetCanceled(ct);
            }