public async Task UpdateFollowing(bool useCursor = false) { if (UpdatingFollowing) { return; } if (Tokens == null) { return; } if (useCursor && _followingCursor == 0) { return; } UpdatingFollowing = true; if (!useCursor || _followingCursor == 0) { Following.Clear(); } try { var param = new Dictionary <string, object> { { "user_id", Tokens.UserId }, { "count", 20 } }; if (useCursor && _followingCursor != 0) { param.Add("cursor", _followingCursor); } var following = await Tokens.Friends.ListAsync(param); if (!useCursor || _followingCursor == 0) { Following.Clear(); } foreach (var user in following) { Following.Add(user); } _followingCursor = following.NextCursor; } catch { if (!useCursor || _followingCursor == 0) { Following.Clear(); } UpdatingFollowing = false; return; } UpdatingFollowing = false; }