redisのSortedSetRangeByRankAsyncを用いてランクのリストから一人ひとりのランクに対応するプレイヤーIDを同時取得したいのですが、うまくいきません。
下記の関数において
temp.Add(await player);
で固まってしまい進みません。
どのようにしたらよろしいでしょうか。
ご教授お願いします。
/// <summary> /// ランクに対応するプレイヤーを取得 /// </summary> /// <param name="zkey">zsetのキー</param> /// <param name="ranks">ランク</param> protected async Task<IEnumerable<long>> ZRangeByRanks(string zkey, IEnumerable<long> ranks) { var temp = new List<RedisValue[]>(); var tran = Db.CreateTransaction(); var players = ranks.Select(rank => tran.SortedSetRangeByRankAsync(zkey, rank, rank)); await tran.ExecuteAsync(); foreach (var player in players) { temp.Add(await player); // ここで処理が固まる } return temp.Select(n=>(long)n.First()); }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。