1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-16 00:22:58 +08:00

Use tcs instead of delay-wait

This commit is contained in:
smoogipoo 2020-12-19 03:17:04 +09:00
parent eccfc8ccd2
commit cc22efaa6b

View File

@ -107,25 +107,23 @@ namespace osu.Game.Screens.Multi.Play
{ {
Debug.Assert(token != null); Debug.Assert(token != null);
bool completed = false; var tcs = new TaskCompletionSource<bool>();
var request = new SubmitRoomScoreRequest(token.Value, roomId.Value ?? 0, playlistItem.ID, score.ScoreInfo); var request = new SubmitRoomScoreRequest(token.Value, roomId.Value ?? 0, playlistItem.ID, score.ScoreInfo);
request.Success += s => request.Success += s =>
{ {
score.ScoreInfo.OnlineScoreID = s.ID; score.ScoreInfo.OnlineScoreID = s.ID;
completed = true; tcs.SetResult(true);
}; };
request.Failure += e => request.Failure += e =>
{ {
Logger.Error(e, "Failed to submit score"); Logger.Error(e, "Failed to submit score");
completed = true; tcs.SetResult(false);
}; };
api.Queue(request); api.Queue(request);
await tcs.Task;
while (!completed)
await Task.Delay(100);
return await base.SubmitScore(score); return await base.SubmitScore(score);
} }