mirror of
https://github.com/ppy/osu.git
synced 2025-02-16 03:02:56 +08:00
Use tcs instead of delay-wait
This commit is contained in:
parent
eccfc8ccd2
commit
cc22efaa6b
@ -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);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user