I have an executor method:
public static async Task<T> ExecuteAsync(Func<Task<T>> method)
{
await method();
}
When calling it both
await ExecuteAsync( () => obj.MethodAsync());
and
await ExecuteAsync( async () => await obj.MethodAsync());
seem to work just fine and finish in roughly the same amount of time while spawning roughly the same amount of threads. It was my understanding that in the first case the method will be executed synchronously inside the lambda and the lambda would be executed asynchronously, and in the second example both the method and the lambda would be executed asynchronously.