Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: Rund um die Programmierung ::  Alternativen für Callbacks/Listener     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
erfghnmghfc
Unregistrierter




Beitrag erfghnmghfc Unregistrierter 09:28:07 28.01.2012   Titel:   Alternativen für Callbacks/Listener            Zitieren

Zum updaten von GUIs oder anderem werden ja oft Callbacks verwendet, die ausgelöst werden, wenn sich ein Wert ändert. Das führt aber auch dazu, dass bei einigen Operationen, z.B. Laden, viel zu viele Callbacks aufgerufen werden und alles unnötig langsam wird. Gibts da was besseres als Callbacks?
Mechanics
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.01.2012
Beiträge: 432
Beitrag Mechanics Mitglied 17:40:57 28.01.2012   Titel:   Re: Alternativen für Callbacks/Listener            Zitieren

erfghnmghfc schrieb:
Das führt aber auch dazu, dass bei einigen Operationen, z.B. Laden, viel zu viele Callbacks aufgerufen werden und alles unnötig langsam wird.


Callbacks sind hier nicht das Problem, du machst einfach was falsch. So pauschal kann man das aber nicht beantworten.
erfghnmghfc
Unregistrierter




Beitrag erfghnmghfc Unregistrierter 09:41:57 29.01.2012   Titel:              Zitieren

Was machst du denn, wenn sich mehrere Werte von einem Objekt ändern und jede Änderung einen Callback auslöst bei dem ein anderes Objekt updates macht, aber es eigentlich reichen würde, wenn am Ende der Änderungen nur ein update stattfinden würde?
Artchi
Autor

Benutzerprofil
Anmeldungsdatum: 16.03.2002
Beiträge: 8583
Beitrag Artchi Autor 13:13:09 29.01.2012   Titel:              Zitieren

Am Ende der langen Aktion erst ein Event auslösen lassen? :rolleyes:

_________________
Bring back the Windows Start Menu Petition | GoPetition


Zuletzt bearbeitet von Artchi am 13:13:34 29.01.2012, insgesamt 1-mal bearbeitet
erfghnmghfc
Unregistrierter




Beitrag erfghnmghfc Unregistrierter 14:11:42 29.01.2012   Titel:              Zitieren

Dann muss man für jede Aktion die ein oder mehrere Attribute ändert ein Event machen, statt einfach nur ein event im Setter auszulösen. Dann muss aber auch wieder jeder wissen, welche Events das Attribut ändern, für das er sich interessiert. Auch nicht so toll.
Mechanics
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.01.2012
Beiträge: 432
Beitrag Mechanics Mitglied 17:05:09 29.01.2012   Titel:              Zitieren

Warum muss jede Änderung einen Callback auslösen? Wie gesagt, dein Design ist einfach falsch. So pauschal kann man da aber nichts dazu sagen. Solche Probleme haben alle anderen ja auch irgendwie gelöst. Es ist keine Frage der Technologie, sondern der Architektur.
erfghnmghfc
Unregistrierter




Beitrag erfghnmghfc Unregistrierter 18:15:17 29.01.2012   Titel:              Zitieren

Mechanics schrieb:
Warum muss jede Änderung einen Callback auslösen?
Was gibts für Alternativen? Was machst du, wenn z.B. an 3 Stellen in Fenstern ein Name von einem Objekt steht und editiert werden kann und natürlich überall der aktuelle angezeit werden soll?
Patrickssj6
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.01.2012
Beiträge: 87
Beitrag Patrickssj6 Mitglied 18:27:58 29.01.2012   Titel:              Zitieren

erfghnmghfc schrieb:
Mechanics schrieb:
Warum muss jede Änderung einen Callback auslösen?
Was gibts für Alternativen? Was machst du, wenn z.B. an 3 Stellen in Fenstern ein Name von einem Objekt steht und editiert werden kann und natürlich überall der aktuelle angezeit werden soll?

Die 3 teilen sich einfach 1 Callback?
Mechanics
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.01.2012
Beiträge: 432
Beitrag Mechanics Mitglied 18:31:59 29.01.2012   Titel:              Zitieren

Zum dritten mal, das kann man pauschal nicht sagen ^^

Wenn du viele Daten laden musst, dann registrierst du deine Callbacks eben nachdem du die Daten geladen hast. Oder du deaktivierst das Feuern der Events. Ich weiß nicht, was für ein GUI Framework du verwendest, aber die meisten erlauben das. Oder zu schaltest einen Proxy dazwischen, der die Events entsprechend weiterleitet oder nicht. Es gibt viele Möglichkeiten so eine Anwendung zu strukturieren, und es gibt viele Möglichkeiten, die meisten dieser Architekturen für konkrete Anwendungsfälle zu optimieren. Du stellst viel zu allgemeine Fragen, daraus wird dein eigentliches Problem nicht klar.
erfghnmghfc
Unregistrierter




Beitrag erfghnmghfc Unregistrierter 18:56:29 29.01.2012   Titel:              Zitieren

Ja, irgendwelche updates deaktivieren wird auch gemacht, aber ich empfinde sowas eigentlich nur als Workaround. Callbacks sind ja eine ganz allgemeine Sache und ich hätte halt gehoft, dass sich jemand schon eine allgemeine Antwort auf meine Frage ausgedacht hat.
Ethon
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.01.2011
Beiträge: 1114
Beitrag Ethon Mitglied 19:17:49 29.01.2012   Titel:              Zitieren

Eine Alternative zu Callbacks ist Polling - wohl deutlich schlimmer.
C/C++ Forum :: Rund um die Programmierung ::  Alternativen für Callbacks/Listener   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.