Wenn ich diesen Codeschnipsel verwende Der MessageOutput.Text wird 2 mal gesetzt, was bedeutet, dass der Code zweimal ausgeführt wird, da ich den MessageOutput.Text nirgendwo sonst setze. Immer wenn ich eine neue Nachricht erhalte, wird diese Methode aufgerufen und soll die Benutzeroberfläche aktualisieren. Warum passiert das und wie kann ich das beheben?Event Handler wird mehr als einmal ausgeführt
async void MessageReceived(DatagramSocket socket, DatagramSocketMessageReceivedEventArgs eventArguments)
{
uint stringLength = eventArguments.GetDataReader().UnconsumedBufferLength;
string receivedMessage = eventArguments.GetDataReader().ReadString(stringLength);
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal,() =>
{
MessageOutput.Text += (receivedMessage + "\n");
});
}
Sind Sie sicher, dass die Methode nicht zweimal aufgerufen wird? – pquest
Diese Methode wird aufgerufen, wenn ich eine neue Nachricht "listenerSocket.MessageReceived + = MessageReceived" erhalte und in diesem Fall die empfangene Nachricht zweimal anzeigt. – Stefan
Das ändert meine Frage überhaupt nicht. Setzen Sie einen Unterbrechungspunkt in die erste Zeile von 'MessageReceived' und sehen Sie, ob Sie ihn zweimal drücken. – pquest