/// <summary> /// 指定されたゲームIDのリザルトを読む /// </summary> /// <param name="gameID">ゲームID</param> private async void readAsync(int gameID) { Contract.Requires <ArgumentOutOfRangeException>(gameID >= 0); if (reading) { return; } reading = true; gameIDTextBox.Text = gameID.ToString(); setStatusMessage(string.Format("リザルトを読み込み中です。(ID:{0})", gameID.ToString())); GameResult result = new GameResult(); var players = await result.LoadAsync(gameID); if (players == null) { setStatusMessage(string.Format("リザルトの読み込みに失敗しました。(ID:{0})", gameID.ToString())); reading = false; return; } var resultText = await createResultStringAsync(players); resultTextBox.Text = resultText; bool success = await bouyomi.SpeakAsync(resultText); if (success) { setStatusMessage(string.Format("リザルトの読み込みが完了しました。(ID:{0})", gameID.ToString())); } else { setStatusMessage(string.Format("棒読みちゃんに接続できません。(ID:{0})", gameID.ToString())); } reading = false; }