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)))); }
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)); }