We've released v5.8.1 hotfix which now contains the method:
/// <summary>
/// Async variant of <see cref="CommitChanges(System.Func{SD.LLBLGen.Pro.ORMSupportClasses.IUnitOfWorkCore,bool})"/>
/// </summary>
/// <param name="commitUnitOfWorkFunc">The func which is called to commit the work in the Unit of work which is passed into the func by
/// CommitChanges. The func specified has to be an async lambda. The func also gets passed the cancellation token passed to this method</param>
/// <param name="cancellationToken">The cancellation token, which is passed to the commitUnitOfWorkFunc</param>
/// <returns>the result returned by commitUnitOfWorkFunc after it gets called with the Unit of Work to commit</returns>
public async Task<bool> CommitChangesAsync(Func<IUnitOfWorkCore, CancellationToken, Task<bool>> commitUnitOfWorkFunc, CancellationToken cancellationToken)
You should use this method to perform the commit action asynchronously. The cancellation token passed to the method is passed to the func as cancellation token, so you don't need to embed that in the func. Hope this helps, and again sorry for the confusion/inconvenience, we totally overlooked the requirement to have this one async as well (we did add an async variant for the other commitchanges method)