J'ai besoin dans wpf app vérifier les messages sur le serveur. J'ai propre méthode qui charge des messages sur le serveur LoadRp ().WPF, méthode de serveur appelant en arrière-plan travailleur
Je voudrais créer une sorte d'auditeur qui vérifie, toutes les 3 secondes si sur le serveur ne sont pas de nouveaux messages.
J'appelle la méthode pour charger des messages sur l'événement de ticker de répartiteur, est-ce approprié? Toute autre solution. Il est possible d'appeler le temporisateur dans un autre thread dans wpf?
codeest ici:
public MessangerWindow(PokecCommands pokecCmd)
{
InitializeComponent();
PokecCmd = pokecCmd;
_friendsData = PokecCmd.LoadFriends();
friendsListBox.DataContext = _friendsData;
_dispatcherTimer = new DispatcherTimer();
_dispatcherTimer.Tick+=new EventHandler(DispatcherTimer_Tick);
_dispatcherTimer.Interval = new TimeSpan(0,0,3);
_dispatcherTimer.Start();
}
private void DispatcherTimer_Tick(object sender, EventArgs eventArgs)
{
try
{
//try load new message from sever
RP message = PokecCmd.LoadRp();
//arived message
if (message != null)
{
//exist window
if (_chatWindows.ContainsKey(message.Nick))
{
_chatWindows[message.Nick].Show();
}
{
//create new Window
var chatWindow = new ChatWindow(PokecCmd, message);
_chatWindows.Add(message.Nick, chatWindow);
chatWindow.Show();
}
}
}
catch (Exception ex)
{
//MessageBox.Show(ex.Message);
}
}
Ce qui convient à utiliser:
- Dispatcher sans fils de fond
- Dispatcher avec des fils de fond
- plusieurs threads
Nous vous remercions d'avance. –
De rien. Est-ce que vous allez marquer ma réponse comme correcte? –