2012-04-13 3 views
0

J'ai une application wpf qui a plusieurs sockets ouverts à divers hôtes. Les hôtes enverront par intermittence des paquets et je devrai parfois envoyer des paquets aux hôtes. J'ai l'application qui fonctionne où les threads de socket répartissent les appels au thread ui pour afficher les données. L'application est en train de grandir là où elle aura plusieurs "widgets/contrôles" d'interface utilisateur où plusieurs widgets peuvent afficher des données (rendus différents) à partir d'une seule socket. Ce serait bien d'avoir des observablecollections qui existent sur le thread UI. Et les sockets envoient des événements faibles au thread UI. Le thread ui met à jour les collections et, voila, la mise à jour des widgets. Pour envoyer de l'interface utilisateur à la socket, peut-être avoir un flux avec accès synchronisé?Conception de sockets multithread wpf

Quelqu'un a-t-il de bonnes suggestions sur un design qui en ferait une application maintenable?

Répondre

0

Le MVVM pattern fonctionne bien pour l'interfaçage entre l'interface utilisateur et la logique de niveau inférieur. Il existe de nombreux didacticiels et exemples sur la façon de démarrer avec MVVM (voir this post). De plus, des frameworks ont été développés pour vous aider à adopter le modèle MVVM, tel que MVVMLight.

Un aperçu rapide serait quelque chose comme ceci:

  1. Votre View affiche l'interface utilisateur à votre utilisateur
  2. Le point de vue est lié à la ViewModel qui prépare les données pour l'affichage et maréchaux threads en conséquence
  3. Le ViewModel interagit avec votre modèle qui stocke vos données de sauvegarde et gère vos sockets