Wpis z mikrobloga

Problem z asynchronicznością w #csharp

Komunikacja bluetooth z wykorzystaniem StreamSocket oraz RfcommDeviceService
Metody SendCommandAsync: w skrócie obiekt typu DataWriter: _writer.FlushAsync(); _writer.WriteString(stringa); _writer.StoreAsync();
ListenForMessagesAsync: to pętla

uint actualMessageLength = await _reader.LoadAsync(1);
message += _reader.ReadString(actualMessageLength);

Powyższe działa:
Problem się pojawia gdy chce wywołać SendCommandAsync() uzyskać wynik przy pomocy ListenForMessagesAsync() a następnie powtórzyć taką sekwencje jeszcze raz i jeszcze raz.
Efekt: na wysłane komendy urządzenie bluetooth zwraca mi pomieszane odpowiedzi:
Przyczyna: Asynchroniczność.
#pytanie: Czy ktoś wie jak zmusić Taski by po wysłaniu komendy czekały na właściwą odpowiedź. Żeby działało to jakoś przyzwoicie?

#programowanie #uwp
  • 2