private Task<int> LastSyncCompletedReadTask(int val)
{
Task<int> t = _lastSyncCompletedReadTask;
Debug.Assert(t == null || t.Status == TaskStatus.RanToCompletion);
if (t != null && t.Result == val)
return t;
t = Task.FromResult<int>(val);
_lastSyncCompletedReadTask = t;
return t;
}