Das mit Refresh habe ich ähnlich gelöst. Nicht mit UDP (weil ich zu blöd bin), sonder mit mailslots. Aber egal. Es ist verdammt aufwändig und hat zu massiven Problemen geführt, weil der Client ab und an beim refreshen sich selbst ins Knie geschossen hat (stichwort: Threadsafe programmieren). Also mussten wir im Client ständig die Refreshs wieder puffern, weil der Client gerade irgendwas physes gemacht hat.
Wir haben es zwar hinbekommen, aber schön ist das nicht. Mittlerweile verwenden wir einen zentralen 'Cache' (als Mittelschicht). Dieser Cache refresht die Tabelle (Aktueller Zustand eines Maschinenparks) alle 60 sec vom
SQL-Server. Die Clients bedienen sich bei diesem zentralen Cache nach Bedarf. Das ist wesentlich sicherer, und auf die paar Sekunden kommts nicht drauf an.
Bei der Kunden-Telefonnummer, die sich -hupsa- mal eben ändert, ist das natürlich ärgerlich. Dagegen haben wir ein auto-timeout. Der Mitarbeiter, der also zur Besprechung geht, kommt gar nicht in die Verlegenheit, eine verdammt alte Telefonnummer zu sehen, weil der Client ihn ja nach 1 Minute rauswirft.
Abschliessend sei gesagt, das dieses Refresh der reinen Metapher einer Mehrbenutzer-
DB widerspricht. Die Clients kommen ja (in einer grossen Umgebung) vor lauter Refresh gar nicht mehr zum Ausruhen... Aber, cool ist es schon.