Hi,
ich hab folgendes gemacht. Auf UI Knopfdruck wird ein Sound abgespielt und gleichzeitig der Knopf von 'PlayGrafik' in 'StopGrafik' geändert. Der im Hintergrundliegende Audioplayer feuert ein Event wenn der Sound komplett abgespielt ist. Das Event-'SoundzuEnde' wird im UI aufgefangen und die Knopfgrafik ändert sich wieder in 'PlayButton'. Alles soweit klar und okay.
Nun hab ich den Code so geändert, dass die abgespielte Sounddatei beim Knopfdrücken 'Play' zu einer List<obj>'ListOfInPlaySounds' hinzugefügt wird und im Fall des Event-'SoundzuEnde' wird das hinzugefügte Obj aus der List<obj>'ListOfInPlaySounds' gelöscht (removed).
Frage: Was passiert wenn ich mit der Liste List<obj>'ListOfInPlaySounds' in einer anderen Funktion 'arbeite' und jetzt das Event-'SoundzuEnde' feuert und ein Objekt der in 'bearbeitung' befindlichen Liste löscht/löschen soll.
Passiert das 'mitten drin'?
Oder wartet der Computer bis die andere Funktion die Liste 'frei gibt' und dann wir der Event Code ausgeführt.
(Bonus Frage: Wird sowas race condition genannt?)
LG
ich hab folgendes gemacht. Auf UI Knopfdruck wird ein Sound abgespielt und gleichzeitig der Knopf von 'PlayGrafik' in 'StopGrafik' geändert. Der im Hintergrundliegende Audioplayer feuert ein Event wenn der Sound komplett abgespielt ist. Das Event-'SoundzuEnde' wird im UI aufgefangen und die Knopfgrafik ändert sich wieder in 'PlayButton'. Alles soweit klar und okay.
Nun hab ich den Code so geändert, dass die abgespielte Sounddatei beim Knopfdrücken 'Play' zu einer List<obj>'ListOfInPlaySounds' hinzugefügt wird und im Fall des Event-'SoundzuEnde' wird das hinzugefügte Obj aus der List<obj>'ListOfInPlaySounds' gelöscht (removed).
Frage: Was passiert wenn ich mit der Liste List<obj>'ListOfInPlaySounds' in einer anderen Funktion 'arbeite' und jetzt das Event-'SoundzuEnde' feuert und ein Objekt der in 'bearbeitung' befindlichen Liste löscht/löschen soll.
Passiert das 'mitten drin'?
Oder wartet der Computer bis die andere Funktion die Liste 'frei gibt' und dann wir der Event Code ausgeführt.
(Bonus Frage: Wird sowas race condition genannt?)
LG
codewars.com Rank: 4 kyu