private Task<int> TaskFromResultOrCache(int result)
{
Task<int> completedTask = _lastSynchronouslyCompletedTask;
Debug.Assert(completedTask == null || completedTask.Status == TaskStatus.RanToCompletion, "Cached task should have completed successfully");
if ((completedTask == null) || (completedTask.Result != result))
{
completedTask = Task.FromResult(result);
_lastSynchronouslyCompletedTask = completedTask;
}
return completedTask;
}