public static Task <T> ExecuteAsyncMethod <T>(this IMethodExecutable executable) { var task = (Task)executable.ExecuteMethod(); var tcs = new TaskCompletionSource <T>(); task.ContinueWith(t => { var res = task.GetPropertyValue(nameof(Task <T> .Result)); tcs.SetResult((T)res); }); return(tcs.Task); }
public static Task ExecuteAsyncMethod(this IMethodExecutable executable) => (Task)executable.ExecuteMethod();