Helios.Channels.DefaultChannelHandlerInvoker.SafeExecuteOutboundAsync C# (CSharp) Method

SafeExecuteOutboundAsync() private method

private SafeExecuteOutboundAsync ( Func function ) : Task
function Func
return Task
        private Task SafeExecuteOutboundAsync(Func<Task> function)
        {
            var promise = new TaskCompletionSource();
            try
            {
                Executor.Execute((p, func) => ((Func<Task>) func)().LinkOutcome((TaskCompletionSource) p), promise,
                    function);
            }
            catch (Exception cause)
            {
                promise.TrySetException(cause);
            }
            return promise.Task;
        }