示例#1
0
        public Task SelectAsync(Func <bool> sync)
        {
            var r = new SelectCaseReceiver <T>(sync);

            return(Task = Task.WhenAny(
                       Channels.Select(c => c.ReceiveInto(r).ContinueWith(t => ReceivedValue = t.Result, TaskContinuationOptions.ExecuteSynchronously))));
        }
示例#2
0
        public Task SelectAsync(Func <bool> sync)
        {
            if (Channel == null || !Channel.IsOpen)
            {
                return(Task.FromResult(false));
            }

            var r = new SelectCaseReceiver <T>(sync);

            return(Task = Channel.ReceiveInto(r).ContinueWith(t => ReceivedValue = t.Result, TaskContinuationOptions.ExecuteSynchronously));
        }