Similar to IPostprocessBuildWithReport but with Task as return type. So we could write some non blocking async code in the processing logic
public interface IPostprocessBuildWithReport : IOrderedCallback
{
TimeSpan? TimeOut { get; } // for skip when too long. Return null for default
Task OnPostprocessBuild(BuildReport report);
}
First, it difference between a task blocking and IO blocking (await is not IO blocking in the thread)
Second, it would be better if we could write async/await function directly, instead of the need to wrapping it in Task.Run
Third, I think async Task function should actually be promoted to be default processor function. Eventually the current one should be deprecated