I think the .NET core implementation is flawed... Task.FromResult doesn&#x27;t actually happen on another thread, it returns an already completed Task synchronously.  You might want to use Task.Run instead.