このコードは、1 つが最初にボタンを押すソケットに接続された 2 つのクライアントをチェックします。接続と受信は正常に機能しますが、deelnemersTimer とクライアント ディクショナリで 2 番目にあるクライアントのボタンをクリックすると、何も実行されません。辞書の最初のものをクリックするまで待ってください。間違っているのは foreach の await だと確信していますが、これを正しく機能させるには何を変更する必要がありますか?
client は、クライアント名とそのソケットを含む辞書です。deelnemersTimers は、クライアント名とボタンをクリックした時間の辞書です。また、deelnemer は参加者のオランダ語です。
foreach (Deelnemer deelnemer in deelnemers)
{
deelnemersTimer[deelnemer.DeelnemerVoornaam + " " + deelnemer.DeelnemerNaam] = await CheckButtons(clients[deelnemer.DeelnemerVoornaam + " " + deelnemer.DeelnemerNaam]);
}
deelnemersTimer.Values.Min();
var eerste = deelnemersTimer.Where(p => p.Value == deelnemersTimer.Values.Min()).Select(p => p.Key).FirstOrDefault();
private async Task<long> CheckButtons(StreamSocket socket)
{
DataReader reader = new DataReader(socket.InputStream);
var actualStringLength = await reader.LoadAsync(1);
long time = stopwatch.ElapsedMilliseconds;
return time;
}